我使用 Vim 插件ack.vim,但我不明白为什么该命令:Ack
带有大写“A”(按住有点烦人shift)。
是否可以将其重新映射到:ack
?
内置命令以小写字符开头,自定义命令以大写字符开头。这些是规则。Vim 根本不允许您定义以小写字母开头的自定义命令。
如果您不喜欢它,没有什么能阻止您创建正常模式映射:
nnoremap <leader>a :Ack<Space>
这甚至比:ack<Space>
.
是的,但它并不像听起来那么简单:
cnoreabbrev <expr> ack getcmdtype() == ':' && getcmdline() ==# 'ack' ? 'Ack' : 'ack'
长话短说 vim 不提供创建小写命令的本地方式。使用映射会导致延迟,因此首选缩写。诀窍是当缩写应该扩展为 ' 时要小心,cabbrev
而不仅仅是 ex 命令和其他地方,例如搜索。这是另一个讨论这一点的线程。
Hari Krishna Dara 创建了一个插件:cmdalias.vim。它使用上述技术的变体