2013-03-08 71 views
6

任何人都知道vim中的任何技巧可以輕鬆地交換兩行代碼?我知道交換相鄰的行很簡單,但假設我想將第23行與第52行交換。是可以實現的嗎?在Vim中換行

+3

ESC - >:23 - > dd - >:51 - > p - > k - > dd - >:22 - > p :) – Lucas 2013-03-08 14:38:17

回答

15

是的!

:23m52|51m22 

然後按Enter

它也很容易編寫一個函數來做到這一點。

2

如果在粘貼時有可視化選擇,它會在粘貼後將選擇放入默認緩衝區。所以你會這樣做23Gdd51GVp23GP

+9

...哪個實際上不會是一個錯誤的密碼... – Kevin 2013-03-08 14:39:53

+0

你的意思是23G ... 51G ...? – Kent 2013-03-08 14:43:15

+0

是,G,固定。我通常使用:23,但這更容易顯示 – Kevin 2013-03-08 14:46:31

2

用戶move命令來移動線。例如,交換線23和52行::help move

:23m52 | 52m23 

類型得到的move幫助使用,它可能:-)

5

移動範圍內的行我LineJuggler plugin有普通和可視模式映射]E[E (和其他人,類似於流行的未受損的插件)將當前行/選擇與下面/上面的[count]行交換。

我認爲:[range]Swap {range}命令也會有所幫助;我正在努力。

編輯:這裏是:LineJugglerCommands plugin