[英]Is it possible to remap an Ex command in Vim (remap :Ack to :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 。 它使用了上面技术的一种变体
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.