如何在vim中扩展命令?
我想在两种情况下这样做,
:diffget
或:diffput
之后,我总是希望运行:diffupdate
:NERDTreeToggle
我希望运行<C-w>=
答案 0 :(得分:3)
我不知道会为您的方案触发任何autocmd事件。但是,一些自定义映射可能会有所帮助。
您可以更改默认的dp
和do
映射,以执行:diffupdate
nnoremap dp dp:diffupdate<cr>
nnoremap do do:diffupdate<cr>
请注意,有时您无法使用dp
和/或do
,必须使用:diffput
/ :diffget
。在这些情况下,我建议您创建如下命令:
command! -nargs=? -range=1 -bar Diffput <line1>,<line2>diffput <args>|diffupdate
command! -nargs=? -range=1 -bar Diffget <line1>,<line2>diffget <args>|diffupdate
或者您可以映射:diffupdate
nnoremap <f8> :diffupdate<cr>
NERDTree
nnoremap <leader>N :NERDTreeToggle<cr><c-w>=
答案 1 :(得分:0)
也许您可以查看vim macro。它可能适合你想做的事情:)。
答案 2 :(得分:0)
在包含多个命令的.vimrc
中的VimScript中创建自己的自定义函数。
这是我使用几个插件在缓冲区中启动Clojure Repl的一个:
fun! LeinCMD()
execute 'ConqueTerm lein repl'
execute 'set syntax=clojure'
execute 'normal! i'
endf
command! Repl call LeinCMD()
然后我用:Repl
调用此命令(请注意,您的自定义命令必须始终以大写字母开头)。