Joh*_*ohn 7 bash vim command-line
在我的文件系统中,我有一些以加号开头的文件。当我尝试用 vim 打开它们时,会抛出错误。
例如,当输入...
vim +foo.out
Run Code Online (Sandbox Code Playgroud)
我收到以下错误...
Error detected while processing command line:
E492: Not an editor command: foo.out
Run Code Online (Sandbox Code Playgroud)
我可以看到 vim 认为既然有一个加号,我必须尝试运行某种命令,但因为它后面跟着一个文件名,所以它不知道该怎么做。关于如何解决这个问题并打开/编辑文件有什么建议吗?
是的,vim不解释+foo.out为文件名。至少有两种解决方案:
使参数看起来像绝对路径或相对路径,因此它不以+or开头-。在这种情况下
vim ./+foo.out
Run Code Online (Sandbox Code Playgroud)
一般来说,当参数是文件名时这很有用。如果不是(例如grep -string-to-find)那么您需要使用另一种方法。
通知工具何时应该停止解析选项。一种常见的方法是使用双破折号。在这种情况下,它将是
vim -- +foo.out
Run Code Online (Sandbox Code Playgroud)
一般来说,当工具支持 的这种含义时,这很有用--。Vim 可以,很多工具也可以(注意:支持是POSIX 指南--之一);但有些则不然。
如果每种方法都可以使用,那么同时使用它们有点过度,但绝不是错误:
vim -- ./+foo.out
Run Code Online (Sandbox Code Playgroud)