0
我想找到Vim的一個好辦法做到這一點搜索和替換以下 -匹配模式,然後替換使用模式
name_1
end
name_2
end
name_3
end
,我拿名_「x」和其追加到它的在「結束」聲明之後。因此,它應該是這樣的 -
name_1
end_name_1
name_2
end_name_2
name_3
end_name_3
注 - 空行NAME_3遺址「name_x」和「結束」之間的恆定線前間距。所以,我在想是這樣
:g/\(name_x\)/,/end/ s/end/end_\1/
現在不工作嘗試存儲這樣的第一圖案,但希望你的想法。這裏有什麼竅門?
感謝
感謝很多答案。這非常有幫助。我總是傾向於在宏之前使用全局命令subs,對於這種情況來說,宏看起來確實是一條路。但我會研究你給出的命令故障。 – itchmyback
彼得同時使用':global'和一個宏:':g'用於定義要在其上執行操作的行以及用於執行該操作的宏。 ':global'和宏是爲對方而設的。 – romainl
Romainl你是對的,他們非常得心應手。我個人更喜歡':g'加上':norm',但這個想法非常相似。也許我應該添加下面的解決方案:'g/name_ \ d \ +/norm y/name_ \ d \ +/e^M/end/e^Ma _ ^] p'。思考?不過,我確實認爲我可能會假定線條開始時沒有任何領先的空白區域。 –