ZyX*_*ZyX 11
目前使用的标准有所方式cnoreabbrev/ cnoremap本:更换前X与x检查它是否在命令行中唯一字符:
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不是第一个,则没有区别.
使用:cnoreabbrev覆盖:X有相同的功能:x:
cnoreabbrev X x
Run Code Online (Sandbox Code Playgroud)
:cnoreabbrev:cabbrev因为:x可能已经被重新映射到别的东西是优选的.
请注意,cabbrev通常使用将影响X命令行中的所有单字母单词,例如,:X X将转换为:x x,可能不是预期的.请参阅@ ZyX的答案以解决此问题.