批量复制粘贴(拉/放)时 Vim 出现的问题

批量复制粘贴(拉/放)时 Vim 出现的问题

我已经使用 Vim 大约 7 个月了,我主要用 javascript 编写代码,但偶尔也用 bash 或 python。我掌握了很多使用它的技巧,经常会说“如果我做不到,就去看看怎么做”或“如果我认为可以改进,就去看看怎么做”。我发现很难对文件进行大规模重组,将代码块从一个文件中的一个位置移动到另一个位置。我尝试过使用它:vsplit来让事情变得稍微容易一些。但它仍然感觉很笨拙。最好的方法是什么,或者离开在文件周围移动相对较大的代码块(10-30 行)?

答案1

最基本的方法是:

  1. 剪切您想要移动的块,可以直接剪切(di{例如)或者在视觉选择之后剪切(vipd例如)。

  2. 移动到您想要的块所在的位置并粘贴。

我没有看到它有任何“笨重”之处。

您现在如何做以及为什么它很笨重?

无论如何,请欣赏 Ex 命令的美妙之处:

:'<,'>m33    <-- move the currently selected text to after line 33
:50,62m19    <-- move lines 50 to 62 to after line 19
:-23,+15m13  <-- move 13th line above to 15th line below to after line 13
:'{,'}m'a    <-- move the current paragraph to after mark a
:?^foo?,'bm. <-- move 1st line matching ^foo upward to mark b to after the current line

哦天哪…瞧:exusage:help :move还有:help range

请注意,Vim 有方法帮助你导航:

  • 标记,ma放置标记a'a跳至标记a,查看:help mark-motions
  • 跳转列表,<C-o>向后跳转,<C-i>向前跳转,参见:help jumplist

相关内容