当我需要在 emacs 中以编程方式打开名称中包含空格的文件时,我该怎么做?我已经在 Ruby 脚本中尝试过这些命令,在反引号内或popen(…)
:
emacs "foo bar"
或者
emacs foo\ bar
打开两个文件,每个文件名为foo
和bar
,但我想打开一个名为foo bar
.
答案1
您在引用时遇到问题,因为您正在使用传递到 shell 的命令行调用 popen。 Ruby 的字符串解析器要么吃双引号,要么吃反斜杠。您可以使用字符串数组调用 popen,这将绕过 shell,也可以编写emacs foo\\ bar
它将转义您希望 Ruby 留给 shell 看到的反斜杠。