我有兩列充滿了文字,我想讓他們並排。例如,我有如何在Vim中的不同列文本之後粘貼一列文本?
abc
def
ghi
和
123
456
789
,我想
123 abc
456 def
789 ghi
所有我能找到的是如何將同一線粘貼到每行的末尾一列。我無法弄清楚如何在另一列的末尾粘貼多行文本塊。
我有兩列充滿了文字,我想讓他們並排。例如,我有如何在Vim中的不同列文本之後粘貼一列文本?
abc
def
ghi
和
123
456
789
,我想
123 abc
456 def
789 ghi
所有我能找到的是如何將同一線粘貼到每行的末尾一列。我無法弄清楚如何在另一列的末尾粘貼多行文本塊。
使用可視塊(ctrl-v
)剪切字母列。然後移至號碼列的第一行。移動到最後並創造一個空間。然後粘貼字母列。
您有:
abc
def
ghi
123
456
789
將光標移動到a
。然後CTRL+V
,並將光標移動到i
。按y
。
接下來,在3
字符後面加一個空格,然後按p
。
完成。
我想知道爲什麼「視覺模塊模式」不適合我。關鍵是yank(或刪除)在視覺模式。
我發現自己需要從excel列中複製一些具有可變長度的東西。我是這樣做的:
Names
Donald Knuth
Sebastian Thrun
Peter Norvig
Satoshi Nakamoto
Age
100
50
60
45
假設你想把第二列放在第一列之後。
Age
Ctrl + v
開始在45
y
進入可視化模式5
猛拉(或d
刪除)你現在已經在視覺模式下被抽出。
粘貼(在正常模式下)
移動到第一行的末尾,並添加更多的空間,因爲它比例如第二線短。如果您在不添加額外空格的情況下粘貼「塊」,它將覆蓋Sebastian Thrun中的「運行」。
現在你在第一行,在最後一個字符後面插入一些空格。確保您未處於插入模式,並點擊p
粘貼該塊。 (如果你想在插入模式粘貼,使用ctrl+r "
)
這似乎是顯而易見的,但如果你是從外部複製緩衝區粘貼不會只是視覺工作模式粘貼。你可以做的是首先使用上述方法在空白區域垂直剪切/粘貼。
如果你想手動設置寄存器類型說按塊,使用此
:call setreg(0, getreg(0), 'b')
或
:call setreg('*', getreg('*'), 'b')
有用的從電子表格編輯器中粘貼列。
有關詳細信息,請參閱:help setreg
和vimtip。
在視覺模塊模式下切割/切割有什麼特別之處嗎?我現在的問題是我使用的寄存器實際上是'*'寄存器,這意味着系統剪貼板。 – 2012-02-02 22:04:51
如果你沒有用'''指定一個特殊的''',那麼相同的寄存器被用於簡單的'y'和'p'。 – Matej 2012-02-02 22:08:12
當我想要「投」一個粘貼時,Ingo Karkat很有幫助。 http://www.vim.org/scripts/script.php?script_id=3355 – 2012-02-02 22:08:59