2014-01-11 170 views
0

這裏的原料是我的工作:如何在Vim中的指定字符後面插入文本?

First. 
This is the second line. 
The third. 

我想在文本中插入「後插4個字符的東西」,使之成爲

Firsinsert something behind 4 charactert. 
Thisinsert something behind 4 character is the second line. 
The insert something behind 4 characterthird. 

:%s/^.\{4}/insert something behind 4 character/g 

substitute命令不會插入文本。我怎樣才能將這個字符串插入每行的第4個字符?

回答

4

非常接近。只要告訴VIM開始在末圖案代:

:%s/^.\{4}\zs/insert something behind 4 character/ 

注意,我離開了g標誌:它不會使一個區別就在這裏,因爲在該模式不匹配一次以上線。

當然,還有其他的方法來做到這一點,如

:%s/^.\{4}/&insert something behind 4 character/ 

也就是說,其次是新的文本本身的副本替換前四個字符。或

:%s/\%5c\@=/insert something behind 4 character/ 

:%s/\%5c\&/insert something behind 4 character/ 

(最後兩個不會,如果有隻有4個字符的工作就行。)

:help sub-replace-special 
:help /\zs 
:help /\& 
:help /\%c 
:help /\@= 

,並在一般情況下,

:help pattern 
2

使用&匹配插入匹配部分

:%s/^.\{4}/&insert something behind 4 character/g 
+1

也是同義詞,\ 0 – Ben

1

使用以下正則表達式,您將能夠完成從每行的第四個字符開始插入。

:%s/\(^.\{4}\)/\1insert something behind 4 character/g

2

因爲其他人建議如何做到這一點與替換,我會提到的視覺模式的選擇:在Firstt

  1. 將光標。
  2. Ctrl + v進入視覺模式。
  3. j向下移動兩行。
  4. Shift + i要插入。
  5. 輸入您的信息。它似乎只能插入第一行。
  6. 轉義將您輸入的內容插入到三個選定的行中。
相關問題