小编use*_*509的帖子

在bash中,如何清除当前输入?

假设你在bash中开始编写如下命令:

$ rm -rf /foo/bar/really/long/path/here
Run Code Online (Sandbox Code Playgroud)

然后意识到你毕竟不想执行这个.有没有办法通过一次或两次击键来清除输入?

我最近一直在做的是在回显之前将输入括在引号中(Ctrl + A echo ",, Ctrl + E,"然后按Enter键).有更快的方法吗?

bash input

167
推荐指数
7
解决办法
4万
查看次数

是斜杠("/")等效于HTTP URL的路径部分中的编码斜杠("%2F")

我有一个网站,以不同的方式处理URL的路径部分(而不是查询字符串)中的"/"和"%2F".根据RFC或现实世界,这是一件坏事吗?

我问,因为我正在使用我正在使用的Web框架(Ruby on Rails)以及下面的图层(Passenger,Apache,例如,我必须为Apache启用"ALLOW_ENCODED_SLASHES").我现在倾向于完全摆脱编码的斜杠,但我想知道我是否应该提交错误报告,我看到涉及编码斜线的奇怪行为.

至于为什么我首先有编码的斜杠,基本上我有这样的路线:

:controller/:foo/:bar
Run Code Online (Sandbox Code Playgroud)

其中:foo就像一个可以包含斜杠的路径.我认为最简单的做法就是只进行URL转义,foo以便路由机制忽略斜杠.现在我有疑虑,而且很明显框架并不真正支持这一点,但根据RFC,这样做是错误的吗?

以下是我收集的一些信息:

RFC 1738(URL):

当八位字节由一个字符表示并且在编码时,URL通常具有相同的解释.但是,保留字符不是这样:编码为特定方案保留的字符可能会更改URL的语义.

RFC 2396(URI):

这些字符称为"保留",因为它们在URI组件中的使用仅限于其保留的用途.如果URI组件的数据与保留的目的冲突,则必须在形成URI之前转义冲突的数据.

(这里的转义是否意味着除了编码保留字符之外的东西?)

RFC 2616(HTTP/1.1):

除"保留"和"不安全"集合之外的字符(参见RFC 2396 [42])等同于它们的"%"HEX HEX"编码.

还有针对Rails的错误报告,他们似乎希望编码的斜杠行为不同:

是的,我期望得到不同的结果,因为他们指的是不同的资源.

它正在根目录中查找文字文件'foo/bar'.非转义版本正在查找目录foo中的文件栏.

从RFC中可以清楚地看出,原始与编码相当于未保留的字符,但保留字符的故事是什么?

url encoding http

61
推荐指数
3
解决办法
9万
查看次数

如何处理不知道Ruby中的库方法可以引发什么异常?

这是一个广泛的问题,但在Ruby编程时我会继续遇到这个问题.我来自一个很大的C和Java背景,当我使用库函数或方法时,我查看文档并查看错误返回的内容(通常在C中)或它可以抛出的异常(在Java中).

在Ruby中,情况似乎完全不同.刚才我需要解析从服务器收到的一些JSON:

data = JSON.parse(response)
Run Code Online (Sandbox Code Playgroud)

当然,在编写这段代码后我想到的第一件事就是如果输入不好怎么办?是否parse会在出错时返回nil,或者引发一些异常,如果是,那是哪些?

我查看文档(http://flori.github.com/json/doc/JSON.html#M000022),看看,简单地说:

"将JSON字符串源解析为Ruby数据结构并将其返回."

这只是我在Ruby中反复遇到的模式的一个例子.最初,我认为这是我正在使用的任何库的文档的一些缺点,但现在我开始觉得这是标准的做法,我的思维方式与Ruby程序员有点不同.有一些我不知道的惯例吗?

开发人员如何处理这个问题?

(是的,我确实查看了库方法的代码,并且可以了解引发了什么异常,但我不能100%确定,如果没有记录,我会感到不舒服,依赖它.)

编辑:看完前两个答案后,让我继续上面的JSON解析示例.

我怀疑我不应该这样做:

begin
  data = JSON.parse(response)
  raise "parse error" if data.nil?
rescue Exception => e
  # blahblah
end
Run Code Online (Sandbox Code Playgroud)

因为我可以查看代码/测试并看到它似乎引发了一个ParserError错误(返回nil似乎不是Ruby中的标准做法).我是否正确地说建议的做法是:

begin
  data = JSON.parse(response)
rescue JSON::ParserError => e
  # blahblah
end
Run Code Online (Sandbox Code Playgroud)

...基于我ParserError通过查看代码和测试了解到的内容?

(我还编辑了这个例子,以澄清它是我正在解析的服务器的响应.)

ruby exception-handling exception rescue

20
推荐指数
1
解决办法
9353
查看次数

用于清除Rails中基于cookie的会话存储的命令

我经常想清除Rails中的会话存储,特别是默认的基于cookie的会话存储.有些网站似乎暗示了这一点

rake tmp:sessions:clear
Run Code Online (Sandbox Code Playgroud)

完成这项任务,但似乎没有.清除基于cookie的会话存储的正确方法是什么?

cookies session ruby-on-rails

11
推荐指数
3
解决办法
2万
查看次数

如何在vim中禁用内置命令

在vim中,当我点击:wq它时几乎总是在尝试输入时发生的事故:w.我想禁用:wq.

我找到的最接近的是cmap,但它有一些奇怪的行为.如果我做的事情

:cmap wq w
Run Code Online (Sandbox Code Playgroud)

我甚至不能输入:wq; 它只是将击键序列重新映射wqw命令模式.例如,我不能在包含的字符串上输入搜索/替换命令wq.

我只是想别名的准确命令:wq:w或无操作.有没有办法做到这一点?

编辑:澄清为什么:cmap不是我的选择

vim command built-in remap

8
推荐指数
2
解决办法
2024
查看次数

文件名以相反顺序完成

要在vim中打开文件,我通常键入":e",然后按Tab键直到我想要的文件出现.

但是,我总是陷入一种节奏,无意中超越了所需的文件.在不知道如何向后移动的情况下,我最终会一直指向最后并重复整个过程.

有没有办法以相反的顺序执行文件名完成?

vim filenames tabs autocomplete

3
推荐指数
1
解决办法
1016
查看次数

如何在Google Chrome调试器控制台中获取DOM树中节点的引用

在Google Chrome调试器中,我经常希望获得对DOM树中节点的引用.我可以单击"放大镜"按钮,然后在浏览器窗口中单击所需的元素,以选择调试器中显示的DOM树中的相应节点.但是如何在控制台中获得对该节点的引用?

如果元素有id,则document.getElementById可以工作,但是如果没有id,是否有更好的替代XPath或使用DOM树的手动遍历children

如果XPath是最好的方法,有没有比做这样的事情更好的方法:

var evaluator = new XPathEvaluator();
var result = evaluator.evaluate("//div", document.documentElement, null,
             XPathResult.FIRST_ORDERED_NODE_TYPE, null);
Run Code Online (Sandbox Code Playgroud)

每次输入都很痛苦.

debugging dom google-chrome

3
推荐指数
1
解决办法
1592
查看次数