作为标题,假设我必须在vim <command> <argument>
中运行此命令。
在.vimrc
我设置let mapleader = ,
因此,在正常模式下,如果我键入,ab
,则vim将运行命令<command> ab
。如果我输入,xyz
,那么vim将运行命令<command> xyz
。
怎么做?
答案 0 :(得分:4)
当参数是灵活的(即你不能像在@ svlasov的回答中那样预定义一组映射)时,你可以定义一个保持在命令行模式的不完整映射,从而允许你完成命令<argument>
。唯一的缺点是你必须在最后输入<Enter>
(但是当参数完成时Vim会怎么知道呢?)
:nnoremap <Leader> :echo<Space>
请注意,使用纯<Leader>
映射是不好的;你不能轻易拥有任何其他映射;更好地使用像<Leader>e
这样的东西。
PS:You should use :noremap
;它使映射不受重映射和递归的影响。
答案 1 :(得分:1)
将<command>
替换成真实的:
nmap <leader>ab :<command> ab<CR>
nmap <leader>xyz :<command> xyz<CR>