我在使用vim的命令行中使用-c (或等效的+)选项,在标准类型的文件上执行一组我需要执行的方便的命令。但是,在对远程系统的OS进行更新之后,第一个操作系统之外的命令将被解释为不同的文件名,从而导致执行第一个命令和打开多个缓冲区,而不是在一个文件上执行多个命令。
我使用的命令是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,以防有帮助。
任何帮助恢复旧的行为或理解问题的来源将是非常感谢的,谢谢!
发布于 2021-07-15 14:57:05
在这里回答:https://vi.stackexchange.com/a/31833/37021问题是远程系统上包装器函数中的一个错误,它错误地将命令行参数传递给vim可执行文件。
修复方法是使用别名vim直接运行可执行文件,并向sys管理员提交关于包装器函数的bug报告。
https://unix.stackexchange.com/questions/658399
复制相似问题