所以我按照这里的说明操作:http: //vimcasts.org/episodes/bubbling-text/
这个想法是我进入视觉模式并选择几行文本。然后我按 CTRL-k 或 CTRL-j 在我的文件中向上或向下移动选定的文本。我的 .vimrc 文件中的映射如下:
nmap <C-k> ddkP
nmap <C-j> ddp
vmap <C-k> xkP`[V`]
vmap <C-j> xp`[V`]
前两个映射用于正常模式 ( nmap),它们按预期工作。对于向下,该dd命令删除一行,该p命令将光标向下移动并插入该行。向上dd命令删除该行,该k命令将光标向上移动一行,然后该P命令插入上面的行。
但是,在可视模式下,它不起作用。以向下移动几行选定文本为例。选择文本后,x命令将其删除。但是该p命令将文本准确地插入到光标所在的位置。因此,如果我有一个包含以下内容的文件:
one
two
three
并且光标在一个的“o”上。我点击vj$选择前两行。然后我点击x删除它们。然后我点击p将它们插入下面。结果如下所示:
tone
two
hree
就在我点击之前p,文件中有一行,光标位于“三”中的“t”上。所以这种行为对我来说很有意义。我不明白为什么 VimCast 专家教程希望我看到不同的行为。另外,我想得到我想要的行为。