我已经使用 Vim 大约 7 个月了,我主要用 javascript 编写代码,但偶尔也用 bash 或 python。我掌握了很多使用它的技巧,经常会说“如果我做不到,就去看看怎么做”或“如果我认为可以改进,就去看看怎么做”。我发现很难对文件进行大规模重组,将代码块从一个文件中的一个位置移动到另一个位置。我尝试过使用它:vsplit
来让事情变得稍微容易一些。但它仍然感觉很笨拙。最好的方法是什么,或者离开在文件周围移动相对较大的代码块(10-30 行)?
答案1
最基本的方法是:
剪切您想要移动的块,可以直接剪切(
di{
例如)或者在视觉选择之后剪切(vipd
例如)。移动到您想要的块所在的位置并粘贴。
我没有看到它有任何“笨重”之处。
您现在如何做以及为什么它很笨重?
无论如何,请欣赏 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