所以我按照这里的说明操作: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 专家教程希望我看到不同的行为。另外,我想得到我想要的行为。