如何修改Vim命令行模式触发键并规避映射冲突?
解决Vim命令行模式快捷键映射问题
要解决这个问题,你需要用非递归映射替代普通的:map命令:
- 仅在正常模式生效,执行:
nnoremap ; : - 若需要在可视模式下也能通过
;进入命令行模式,再加一条:vnoremap ; :
为什么这能解决问题?
普通的:map是递归映射——它会把;关联到当前:的功能,一旦你后续修改了:的映射,;的功能也会跟着改变。而nnoremap/vnoremap是非递归映射,它们直接把;绑定到原始的:功能(也就是进入命令行模式),不管之后你怎么修改:的映射,;都能正常触发命令行模式。
如果非要用“直接触发命令行模式”的方式,也可以用feedkeys实现,不过非递归映射更简洁:
nnoremap ; :call feedkeys(':')<CR>
内容的提问来源于stack exchange,提问作者nadapez
相关产品推荐
相关产品推荐

