我试图覆盖' w'在vim中,它会调用外部程序并过滤缓冲区而不是写入文件。互联网上有关于如何做到这一点的非常好的例子。我从vim.wikia.com尝试了一个,但是vim总是抱怨E488: Trailing characters
。这是我的vimrc中的命令:
cabbrev w <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'W' : 'w')<CR>
我对vim脚本不太熟悉。我尝试从行尾删除<CR>
但没有运气。
更新
由于我想尽可能自定义运行vim,因此我使用-u
标志运行它。我注意到vim在使用该标志时的行为与在没有它的情况下运行它时的行为不同
答案 0 :(得分:0)
关于-u
标志,vim的手册页说明了这一点:
-u {vimrc}使用文件{vimrc}中的命令 初始化。所有其他初始化 被跳过了。用它来编辑一种特殊的文件。它也可以用来跳过所有 通过给出名称“NONE”进行初始化。有关更多信息,请参阅vim中的“:help initialization” 的信息。
显然当使用此标志时从初始化开始 vim / etc / vimrc没有执行,我找到了这个选项:
set nocompatible
vim对兼容选项的帮助:
此选项可以使Vim更兼容Vi,或者 使Vim以更有用的方式运行。这是一种特殊的 选项,因为在设置或重置时,其他选项也会更改 作为副作用。小心:设置或重置此选项可以 很多意想不到的效果:映射以另一种方式解释, 撤消行为不同等。如果在vimrc中设置此选项 文件,你应该把它放在最开始。
...
在Vim启动时找到 vimrc 或 gvimrc 文件时, 此选项已关闭,所有选项均未关闭 modified将设置为Vim默认值。实际上,这意味着 当存在 vimrc 或 gvimrc 文件时,Vim将使用Vim 默认值,否则它将使用Vi默认值。 (注意:这不是 对于系统范围的vimrc或gvimrc文件,或给定的文件都会发生 使用 -u 参数)。
set nocompatible
从问题工作