2015-03-25 147 views
2

我在編輯一個shell用作here文檔。我想用\ $替換$美元符號。當vim使用$作爲行尾時,我該如何做到這一點。如何使用vim visual模式搜索和替換美元

cat > goodband.txt <<EOF 

function bestband 
{ 
    local JON=$1 
    local BON=$2 
} 

EOF 


I want to replace with 


cat > goodband.txt <<EOF 

function bestband 
{ 
    local JON=\$1 
    local BON=\$2 
} 

EOF 

我進入可視化模式,突出顯示塊並嘗試:s/$/\ $ \ g。但我強調並取代了行結尾。

回答

3

$是行尾的特殊標記。如果您想更換文字$字符,你需要轉義,比如移動到JON線的起點和進入:

:.,.+1s/\$/\\$/g 

(當前行和下一個)。

對於影響在它不是那麼容易摸出行範圍的情況下視覺選擇,你可以只使用'<'>標記:

:'<,'>s/\$/\\$/g 
+1

沒有必要這裏是':global'。視覺選擇的正確範圍是「<,'>」。 – 2015-03-25 09:08:18

0

我用這個<,'>s/\$/\\\$/g

+0

你的答案缺少最初的'''; ''<'表示首先選擇的行。另外,您只需在替換部分中使用_two_反斜槓(以避免文字反斜槓); '$'在搜索模式中只有特殊的意義,而不是替換(但它並不傷害它)。 – 2015-03-25 09:09:31