我抵制Vim,但現在已經放棄了。它通過黃油工作,像一個熱刀大文件。Vim替換換行
情況:我有一個很大的文本文件,我想在每行的開頭和結尾放一個管道字符。
問題:這些Vim的和其他變化沒有工作:
:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|
我懷疑這是一些簡單的解決這個問題,但谷歌搜索和堆棧沒有幫助。
我抵制Vim,但現在已經放棄了。它通過黃油工作,像一個熱刀大文件。Vim替換換行
情況:我有一個很大的文本文件,我想在每行的開頭和結尾放一個管道字符。
問題:這些Vim的和其他變化沒有工作:
:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|
我懷疑這是一些簡單的解決這個問題,但谷歌搜索和堆棧沒有幫助。
你幾乎有它:
:%s/^\|$/|/g
^\|$
意味着開始或線結束。在Vim正則表達式中,|
「或」管道被轉義。接下來是/|/g
- 替換爲全球|
。
就個人而言,我更喜歡的的表現「與周圍字符管每行」:
:%s/.*/|&|
這一點,在我的大腦,比更直觀的「取代不存在的,虛構的字符在行'的開頭或末尾。
這也取決於較少的魔法字符(^
,$
,引用\|
這些都是笨拙的打字,而且容易出錯。(我的意思是,你還記得引用正則表達式|
?你知道$
和\_$
之間的區別?你是否知道一些,如果不是全部,取決於vim的'魔術配置'?))。
上述遭受這些都沒有。
我花了一天時間思考這個問題。有趣。我也喜歡你的答案。善良的上帝......不止一個好的答案;)你的命令也有完美的結果。在這一點上,我不夠了解知道哪個更好。 – Paulb
謝謝Michael。該命令完美運作。 ..以及關於爲什麼命令起作用的附加評論非常有幫助。我有一種感覺,管道可能需要逃跑。 – Paulb