2010-10-21 70 views
2

我想使用vim替換所有cygdrive/ecygdrive/d。但我無法正確地獲得匹配模式。這是我的命令:vim字符串替換

s/cygdrive\/e/cygdrive\/d/g 

它不起作用。任何人都可以告訴我什麼是錯的?

感謝,

+0

它究竟是什麼? – Eltariel 2010-10-21 05:11:20

回答

2

你的搜索模式和替換字符串看起來不錯。

確保在試用時處於ex模式。

所以按ESC,然後:然後

%s/cygdrive\/e/cygdrive\/d/g 

但是,如果你希望所有他在短短的當前行,你可以做替代品:

s/cygdrive\/e/cygdrive\/d/g 
-2

你必須躲避特殊字符 這樣 S/cygdrive \/E/cygdrive \/d/g的

+0

他明確表示他在問題中已經這樣做了。 – Eltariel 2010-10-21 05:10:56

+0

好的,我錯過了...... – Raghuram 2010-10-21 07:13:27

3

VIM允許你指定的分隔符。 (s之後的第一個字符是分隔符)

s/cygdrive\/e/cygdrive\/d/g 

使用行範圍參數..和#作爲分隔符

ESC: 
:1,$ s#/cygdrive/e#/cygdrive/d#g 
+0

這很酷。 #符號只能被vim或vi理解嗎? – 2010-10-21 06:05:16

+1

無論是用vi,vim,sed等等將替換命令後面的字符理解爲分隔符。 – 2010-10-21 07:03:18

+0

@Luc | | \或「。 – 2011-05-27 17:12:26