我有
cmap w!! %!sudo tee > /dev/null %
在我的.vimrc
。
当我w
在 vim 命令行(之后:
)中输入 a 时,光标会w
在向右移动之前停留在 上几秒钟。这有时会打断我的思路,让我困惑几秒钟。有没有办法让映射在命令后按 Enter 时发生,这样它就不会在w
我每次按它时暂时“吃掉”?
(顺便说一句,当我输入搜索查询时,此映射也会w!!
扩展,这在实践中并不烦人(除了w
类似延迟的事实),但看起来很奇怪。)
答案1
我刚刚尝试过:
cabbrev w!! %!sudo tee > /dev/null %
延迟展开直到按空格或回车键,但奇怪地写出密码提示在之上命令的扩展,所以命令行看起来像
Password:ee > /dev/null %
(如果忽略显示错误,则可以正常工作)。
答案2
您可以使用以下命令更改此行为timeout
和timeoutlen
选项。引用文档:
如果 'timeout' 选项打开(这是默认值),Vim 将只等待一秒(或与 'timeoutlen' 选项指定的时间一样长)。之后,它假设该字符将被如此解释。