2011-11-17 66 views
0

我的複製粘貼從PDF Vim的一個例子,我有全部更換" 和所有'使代碼工作。如何在Vim中查找和替換許多表達式?

那麼這可能會更容易理解: 我想同時替換所有foobarfoobar

+0

PDF ...通過PDFLaTeX與代碼逐字節我假定輸出? – Benoit

+0

可能。我沒有乳膠代碼本身,只是pdf。 –

回答

5

試試這個在vi 「foo」和a LL「欄中的」 s的「foobar的」您可以使用此:

%s/\v<(foo|bar)>/foobar/g

這將取代「富」 S和「酒吧」秒,但會留下任何「foobar的」獨秒。

  • %s/ - 在整個文件替代
  • \v - 使用起來非常神奇的正則表達式語法(見:help magic獲取更多信息)
  • < - 匹配左字邊界
  • (foo|bar) - 富或酒吧
  • > - 匹配正確的字邊界
  • /foobar/ - 替換字符串
  • g - 全球(會發生的每一次出現,不只是第一個上線)

請注意,如果你只是處理標點符號,你可能會想刪除此正則表達式的字邊界部分或者它不會工作。

+0

謝謝。 您可以用%替換1,$。 我怎樣才能使它與孔字而不是字符一起工作? –

+0

@Dimitar Slavchev:':%s/\ <\(FOO \ |吧\)\>/foobar的/ g'(見':幫助pattern'):'\'<'…'\>劃定一個字和'\('...' \ |'...'\)'是一個交替(在這裏捕獲) – Benoit

3

使用TR作爲一個過濾器:

Unix的方式:如果您要更換所有

:1,$s/[「」]/"/g 

然後

:1,$s/[‘’]/'/g 
1

:%!tr 「」‘’ \"\"\'\' 
相關問題