2012-07-30 42 views
8

使用vim我想用另一個字符替換所有字符,例如空格 - 而不是影響行中的佈局/字符數。這裏有一個例子:vim:將所有字符替換爲給定的標記

前:

real(kind=R12), intent(out) :: my_var 

用空格代替, intent(out)(即從,出發,上升到))後:

real(kind=R12)    :: my_var 

我知道r更換一個字符,約nr取代n個字符,但我想知道如果不先計算字符數,我是否可以完成我的任務我想替換的詞語。

非常感謝您的回覆!

回答

20

可視化模式可能是這裏的最短途徑:

vt:r 
  • vr後注空間)進入可視化模式
  • t:選擇,直到:
  • r用空格代替選定區域。
+0

謝謝,這個作品非常漂亮! – canavanin 2012-07-30 16:43:51

+2

只需注意,您可以使用任何動作,而不只是't'。 'f','/'等等都可以工作。 – kenny 2012-07-30 18:58:52

+0

正是我在找的東西!我記得偶然做這件事,所以我知道要搜索什麼。謝謝! – itmuckel 2016-07-07 15:45:20

0

您可以在此處使用正則表達式(使用(.*?)引用達到令牌的所有值)。

例如:

正則表達式:(.*?)foo將擺脫一切的達富。

+0

在perl的,也許,在vim非貪婪量詞是'\ { - }'。 – Thor 2017-03-23 23:04:08

1

我知道關於R來替換一個字符

你知道嗎,[R將讓你在替換模式?所以你可以點擊R,然後按住空間,直到你替換了你想要的一切。

但是,我仍然會與托爾的答案一起去。可視化模式允許您在vim中使用高效的文本導航方法,而無需計算出字符。如果你不同意,總會有EasyMotion

0

在命令模式下輸入'df?'刪除該(?)字符。然後'i'重新插入。

例如,如果下面的語句是在您的視圖:

The wizard quickly jinxed the gnomes before they vaporized. 

並輸入DFS

你將留下:

before they vaporized. 
+0

注意:** dts **將刪除,直到s,但離開s。 – 2018-03-01 13:23:44

相關問題