2014-05-23 154 views
-1

我想在當前vim緩衝區的每一行上寫入JJ。由於我的文件非常龐大,因此無法在每一行上手動運行。我如何告訴vim爲我做這件事? 基本上我有一個文件,它有單列中的數據。我想將它轉化成三列在vim緩衝區的每一行上運行vim命令

a 
b 
c 

到:

a b c 
+0

也許重複[在Vim中,將文件中所有行加入單行的最簡單方法是什麼?](http://stackoverflow.com/questions/391710/in-vim-what-is-the - 最簡單的方式加入單行文件) – bimlas

+0

請學習使用markdown來防止他人浪費時間在格式不正確的問題上。 – romainl

+0

@BimbaLaszlo問題的期望輸出不是單行。 – Kent

回答

0

據我所知,JJ不是一回事。 J連接線。如果你想這樣做,整個文件,您可以使用可視化模式,選擇整個文件,然後使用Ĵ

ggVGJ 
+0

不,這會將所有行合併成一行。我只想連續行被合併。 –

+0

@ username_4567:哦,那麼'Jj'?可能有更好的方法,但是可以將它記錄爲宏:'ggqjJjq @ q',其中''是文件中剩餘行數的一半。 – Ryan

3

使用微距拍攝和Normal mode command

qqJJq 

重新編碼JJ命令q

uu 

定義q宏。全部撤消。

:%norm! @q 

q應用於整個文檔。

PS:我不擅長英語

0
:g/^/join 

整個緩衝加入連續行(1 + 2,3 + 4,等等...)。您還可以向:global命令提供[range]命令,該命令僅用於其智能線路處理; ^正則表達式匹配任意行

要加入連續行,使用

:g/^/.,.+2join 

:g/^/join|join 

(前者可能得到一個錯誤,如果線的總金額不被3整除;所述後者避免)

2

而另一個:

:%norm JJ 

請參閱:help :normal

+1

比我的簡單。我想我被這個問題的標題想到了':global'。 –