禁用加密:在vim中使用X.

Tec*_*eer 7 vim

:X当我打算输入时,我发现自己正在打:x

有没有办法禁用:X加密,以便:X在vim 中输入没有效果?

我假设有一个命令可以放在.vimrc文件中?

ZyX*_*ZyX 11

目前使用的标准有所方式cnoreabbrev/ cnoremap本:更换前Xx检查它是否在命令行中唯一字符:

cnoremap <expr> X (getcmdtype() is# ':' && empty(getcmdline())) ? 'x' : 'X'
Run Code Online (Sandbox Code Playgroud)

要么

cnoreabbrev <expr> X (getcmdtype() is# ':' && getcmdline() is# 'X') ? 'x' : 'X'
Run Code Online (Sandbox Code Playgroud)

.不同之处在于,首先会阻止你输入:Xfoo(将翻译成:xfoo),第二种不会,但会阻止输入:X!(将翻译成:x!确实有意义的不同:X!).

搜索(/X很好),input()提示等等没有区别,如果键入X不是第一个,则没有区别.


Nik*_*vda 5

使用:cnoreabbrev覆盖:X有相同的功能:x:

cnoreabbrev X x
Run Code Online (Sandbox Code Playgroud)

:cnoreabbrev:cabbrev因为:x可能已经被重新映射到别的东西是优选的.

请注意,cabbrev通常使用将影响X命令行中的所有单字母单词,例如,:X X将转换为:x x,可能不是预期的.请参阅@ ZyX的答案以解决此问题.