-c
我使用 vim 命令行中的(或等效的)选项执行一组我需要经常在标准类型文件上执行的方便命令+
。但是,在更新远程系统的操作系统后,第一个命令之外的命令将被解释为不同的文件名,并导致执行第一个命令并打开多个缓冲区,而不是在一个文件上执行多个命令。
我使用的命令是vim -c ':11' -c ':norm wllv,dZZ' myfile
(转到第11行,移动几个字符,选择当前位置,并使用前导命令替换,然后保存并退出)。随着远程系统的更改,现在会导致打开两个缓冲区,一个是,wllv,dZZ
另一个是myfile
Vim 也会抛出这个错误:
Error detected while processing command line:
E471: Argument required: :norm
此外,如果我尝试vim -c ":11" -c ":21" myfile
,这两个命令都会工作,并且不会打开额外的缓冲区,这表明错误可能位于 的某个地方:norm
,但我不确定为什么,因为最近它工作得很好。
当前版本的 vim 是 7.4,以防有帮助。
任何恢复旧行为或了解问题根源的帮助将不胜感激,谢谢!
答案1
在这里回答:https://vi.stackexchange.com/a/31833/37021 该问题是远程系统上包装函数中的错误,该错误将命令行参数错误地传递给 vim 可执行文件。
修复方法是使用 vim 别名来直接运行可执行文件,并向系统管理员提交有关包装器函数的错误报告。