有时我在 vim 中保存时按住 shift,最后执行:W
。我该如何设置 vimrc 以将其识别:W
为:w
?
答案1
我也有“懒惰”的换档手指,因此我有许多命令别名:
" "Aliases" for commonly used commands+lazy shift finger:
command! -bar -nargs=* -complete=file -range=% -bang W <line1>,<line2>write<bang> <args>
command! -bar -nargs=* -complete=file -range=% -bang Write <line1>,<line2>write<bang> <args>
command! -bar -nargs=* -complete=file -range=% -bang Wq <line1>,<line2>wq<bang> <args>
command! -bar -bang Wqall wqa<bang>
command! -bar -nargs=* -complete=file -range=% -bang We <line1>,<line2>w<bang> | e <args>
command! -bar -nargs=* -complete=file -count -bang Wnext <count>wnext<bang> <args>
command! -bar -nargs=* -complete=file -count -bang Wprevious <count>wprevious<bang> <args>
command! -bar -nargs=* -complete=file -bang E edit<bang> <args>
command! -bar -nargs=* -complete=file -bang Edit edit<bang> <args>
command! -bar -bang Q quit<bang>
command! -bar -bang Quit quit<bang>
command! -bar -bang Qall qall<bang>
command! -bar -nargs=? -complete=option Set set <args>
command! -bar -nargs=? -complete=help Help help <args>
command! -bar -nargs=* -complete=file -bang Make make<bang> <args>
command! -bar -nargs=* -complete=buffer -bang Bdel bdel<bang> <args>
command! -bar -nargs=* -complete=buffer -bang Bwipe bwipe<bang> <args>
command! -bar -nargs=* -complete=file -bang Mksession mksession<bang> <args>
command! -bar -nargs=* -complete=dir -bang Cd cd<bang> <args>
command! -bar Messages messages
command! -bar -nargs=+ -complete=file -bang Source source<bang> <args>
我之所以有许多重复的命令(如W
和)Write
是因为我有足够多的用户定义命令,如果我没有,Vim 可能会抱怨用户命令的使用不明确。(见:help user-cmd-ambiguous
:)
答案2
您不想映射键,但想创建一个行为方式与 w(rite) 相同的命令。只需将其写入 $HOME/.vimrc 即可:
command W write