如果我映射ddkP,Vim会吃掉我的所有行

时间:2012-02-06 16:30:20

标签: vim keymapping

在Vim中,我设置了一个映射,以便在每次按下_

时移动一行

nnoremap _ ddkP

在我的实验中,当我到达Vim文件的顶部时,如果我继续按住_

,所有行都会被吃掉

有什么不对吗?我在Mac上,但是使用控制台Vim,而不是MacVim。

2 个答案:

答案 0 :(得分:3)

文件顶部的k(向上移动一行)失败。我怀疑这会导致映射键执行停止,只留下dd(删除当前行)。要解决此问题,您需要less destructive方式来移动该行。

答案 1 :(得分:2)

Kristo's explanation看起来很合乎逻辑。

我建议您尝试使用此映射,它会执行:move而不删除任何行:

:nnoremap _ :move .-2<CR>

你也可以原子地撤消这个。