2017-05-25 79 views
1

我的文字是這樣的:如何使用Vim做多行編輯

w ky, 
    wyz, 
    wyy, 
    wj, 
    w w, 

,我想把它改成這樣:

"w ky", 
    "wyz", 
    "wyy", 
    "wj", 
    "w w", 

我這樣做,但現在使用:

  1. 記錄一個宏,在一行中插入雙份配額,然後轉到下一行qa0wi"$i"j
  2. t母雞隻是類型[email protected]

是的,它的工作原理,但有沒有更容易的方法來做到這一點?

+0

第一個結果輸入您的問題到谷歌時 https://stackoverflow.com/questions/11784408/vim-multiline-editing-like-in-sublimetext –

+0

@ J.Knight但是當每一道線條都是這個答案只是工作而不是'0w'相同長度 – roger

+0

,你可以使用'^'......不知道你很容易的意思..但是你也可以使用替換...'S/\ s [^,] * /「& 「/' – Sundeep

回答

0

一個更簡單的方法。您可以使用norm命令。我會推薦這:

  1. 直觀地選擇所有的行

  2. 類型的

    :norm I"<C-v><esc>$i"<cr> 
    

    當你真正鍵入此(前按下回車鍵),應在顯示文本您命令行是:

    :'<,'>norm I"^[$i" 
    

規範命令告訴Vim模擬一組上的某些行正常模式的鍵擊。在這種情況下,該命令是:

:'<,'>  " On every line in the visual selection: 
norm  " Do the following as if typed in normal mode: 
I"<esc>$i" " Insert an '"', escape, then insert a '"' at the end (before the comma) 

你也可以做到這一點,而無需使用一個可視化的選擇,通過鍵入<n>:norm ...,和該命令將應用當前ñ線。 (當前行和隨後的N-1線路)

0

做一個「非常神奇的搜索\ V」我們可以搜索...

\v(\w ?\w+), 
\v ........... starts very magic search mode 
( ........... starts group one 
\w ........... any word 
? ........... optional space 
+ ........... one or more 
) ........... ends group one 

測試搜索後,我們可以傳遞到我們的命令或 通過將兩個上斜線搜索模式

%s/\v(\w ?\w+),/"\1",/g 
%s//"\1",/g 

一切上組匹配一個可以通過\1被稱爲使用最後的搜索。

0

做在前面一個基本的多行編輯,然後做一個串上,",取代。