我使用的是Vim插件ack.vim,但是我不明白为什么命令是:Ack
的大写字母为“A”(有点讨厌 shift )
是否可以将其重新映射到:ack
?
答案 0 :(得分:8)
内置命令以小写字符开头,自定义命令以大写字符开头。这些都是规则。 Vim根本不允许您定义以小写字母开头的自定义命令。
如果你不喜欢它,没有什么能阻止你创建普通模式映射:
nnoremap <leader>a :Ack<Space>
甚至比:ack<Space>
更快。
答案 1 :(得分:3)
是的,但它并不像听起来那么简单:
cnoreabbrev <expr> ack getcmdtype() == ':' && getcmdline() ==# 'ack' ? 'Ack' : 'ack'
Long story short vim不提供创建小写命令的本机方法。使用映射会导致延迟,因此首选缩写。诀窍是当缩写应该扩展时要小心,因为cabbrev
在其他时间扩展而不仅仅是ex命令和其他地方,例如搜索。这是another thread谈论这一点。
Hari Krishna Dara创建了一个插件:cmdalias.vim。它使用了上述技术的变体