我想做一個視覺選擇並翻轉它,以便選擇的第一行位於底部。來源:如何翻轉vim中的視覺選擇線?
<other_stuff>
The
wheels
go
round.
<more_stuff>
視覺選擇sentnce,然後翻轉:
<other_stuff>
round.
go
wheels
The
<more_stuff>
任何想法如何簡單地做到這一點。我寧願不必安裝插件就可以做到這一點。
我想做一個視覺選擇並翻轉它,以便選擇的第一行位於底部。來源:如何翻轉vim中的視覺選擇線?
<other_stuff>
The
wheels
go
round.
<more_stuff>
視覺選擇sentnce,然後翻轉:
<other_stuff>
round.
go
wheels
The
<more_stuff>
任何想法如何簡單地做到這一點。我寧願不必安裝插件就可以做到這一點。
當你做出一個目測可供選擇的Vim會自動書籤'<
和'>
在最後一行分別開始和結束,所以你可以用幾種方法做你想做的事情。
在正常模式:'>dd'<P
作爲Ex命令::'>d | '<-1 put
NB書籤保持您退出可視化模式後,這樣你就不必留在可視模式下使用這些。
編輯:
哎呀,我誤解了問題,還以爲你只是想最後一行在開始時說,但你要整塊逆轉。最簡單的解決方案,如果你在unix系統上:
:'<,'>!tac
這通過unix'反向貓'程序管道線。
或OS X上的'tail -r'。 – silvenon 2014-02-10 13:37:47
太棒了!在某些情況下,'!'會節省很多時間! – 2016-09-27 16:08:24
根據:help 12.4
您可以標記與mt
第一線,移動到要扭轉然後使用命令:'t+1,.g/^/m 't
一定要標記你最後一行*不*要移動;不是你想要移動的第一行。 – Alan 2016-03-15 16:12:07
對於那些更舒適的視覺模式:
1.確定要使用:set nu
翻轉選擇上述的行號。
2.使用Shift-V
突出顯示要翻轉的選項(可視模式)。
3. :g/^/m <Line number from step 1>
。
注意,在可視化模式,將自動顯示爲 :'<,'>g/^/m <Line number>
當你在命令從3
通過一次移動選擇一行到你給它的行號鍵入此命令的作用。當第二個項目被壓入給定的行號時,它將第一個項目推到行號+1。然後第三個項目將第一個和第二個項目向下推,直到整個列表被推入到單行號碼中,導致反向排序的列表。
相關:[Reverse selected text @ Vim Wikia](http://vim.wikia.com/wiki/Reverse_selected_text) – Palec 2014-12-27 14:47:28
複製[SU]:[如何在vim中反轉選定的行順序?](http://superuser.com/q/189947/269404) – Palec 2014-12-27 14:50:14