在vim中重新分号到冒号':ls'

Mic*_* M. 7 vi vim

看完Damian Conway的优秀Instantly Better Vim后,我决定改用Vim的冒号和分号:

nnoremap ; :
nnoremap : ;
Run Code Online (Sandbox Code Playgroud)

这一切都很有效,除了一件小事.当我输入时;ls,我得到缓冲区列表(如预期的那样),标准消息为"按ENTER或键入命令继续".通常我想做的是输入类似:bd 2 4 9删除一些缓冲区的东西.

但是,使用新的映射,键入分号不起作用(它退出到新的空白命令行),但也没有键入冒号(它可以作为任何其他按键,就我所知)!有没有办法解决这个问题?我确实倾向于使用默认的分号功能,所以我希望尽可能保留该映射.如果我删除,nnoremap : ;以便默认冒号仍然有效,问题将自行解决.

Ing*_*kat 3

我想说这是实施敲击输入提示的不幸后果。是否清除输出的逻辑似乎没有考虑映射。您应该在vim_dev 邮件列表上提出这个问题;也许有人实现了一个补丁,因为这种交换习惯相当常见。