2012-02-02 87 views

回答

38

使用可視塊(ctrl-v)剪切字母列。然後移至號碼列的第一行。移動到最後並創造一個空間。然後粘貼字母列。

+0

在視覺模塊模式下切割/切割有什麼特別之處嗎?我現在的問題是我使用的寄存器實際上是'*'寄存器,這意味着系統剪貼板。 – 2012-02-02 22:04:51

+1

如果你沒有用'''指定一個特殊的''',那麼相同的寄存器被用於簡單的'y'和'p'。 – Matej 2012-02-02 22:08:12

+1

當我想要「投」一個粘貼時,Ingo Karkat很有幫助。 http://www.vim.org/scripts/script.php?script_id=3355 – 2012-02-02 22:08:59

14

您有:

abc 
def 
ghi 

123 
456 
789 

將光標移動到a。然後CTRL+V,並將光標移動到i。按y

接下來,在3字符後面加一個空格,然後按p

完成。

41

我想知道爲什麼「視覺模塊模式」不適合我。關鍵是yank(或刪除)在視覺模式。

我發現自己需要從excel列中複製一些具有可變長度的東西。我是這樣做的:

Names 
Donald Knuth 
Sebastian Thrun 
Peter Norvig 
Satoshi Nakamoto 

Age 
100 
50 
60 
45 

假設你想把第二列放在第一列之後。

  1. 猛拉它在視覺模式:
    • 移動光標至Age
    • Ctrl + v開始在45
    • y進入可視化模式
    • 將光標移動到5猛拉(或d刪除)

你現在已經在視覺模式下被抽出。

  • 粘貼(在正常模式下)

    • 移動到第一行的末尾,並添加更多的空間,因爲它比例如第二線短。如果您在不添加額外空格的情況下粘貼「塊」,它將覆蓋Sebastian Thrun中的「運行」。

    • 現在你在第一行,在最後一個字符後面插入一些空格。確保您未處於插入模式,並點擊p粘貼該塊。 (如果你想在插入模式粘貼,使用ctrl+r "

  • enter image description here

    +0

    @Ado:謝謝,這幫助了我。但是,雖然正常模式下的粘貼按預期工作,但用'ctrl + r''插入不起作用,應該是這樣嗎? – Xiphias 2016-07-19 10:03:38

    +0

    @Xhihias輸入':registers',看看你有什麼。在'''下面有一些東西,你可能正在輸入'ctrl + r''(確保你正在保持轉換) – Abdo 2016-07-19 12:33:22

    +0

    實際上,它被稱爲「可視塊模式」,而不僅僅是「可視模式」。 – Fritz 2017-04-19 17:05:42

    2

    這似乎是顯而易見的,但如果你是從外部複製緩衝區粘貼不會只是視覺工作模式粘貼。你可以做的是首先使用上述方法在空白區域垂直剪切/粘貼。

    0

    如果你想手動設置寄存器類型說按塊,使用此

    :call setreg(0, getreg(0), 'b') 
    

    :call setreg('*', getreg('*'), 'b') 
    

    有用的從電子表格編輯器中粘貼列。

    有關詳細信息,請參閱:help setregvimtip