2014-09-05 86 views
0

我主要使用大括號{ }在vim中移動,當我正在處理某事時。但是,有時它會跳過太多行。我認爲這是因爲沒有段落中斷,因爲如果我將新行寫入,我可以跳到這些段落。這主要是在處理HTML時出現的問題,我沒有鍵入或在粘貼某些行後。當它跳過太多的線讓我看到我開始的地方和結束的地方之間的時候,這是非常煩人的。大括號移動跳過太多行

我希望我已經描述得很好,讓你們中的一些人知道我在說什麼。

除了使用j並添加換行符以外,是否還有其他補救措施?當必須這樣做時,這是一個巨大的麻煩和生產力的打擊。

編輯:我想提到我只使用大括號來接近我需要工作的部分。在我接近之後,我使用其他方法。

回答

4

這聽起來像一個問題,其中一些行只包含空格,所以不要算作段落中斷,即使它們看起來應該像段落一樣。由於在一些情況下這只是一個問題,所以我建議只要發現問題時就運行替換來清理這些行。例如:

%s/^\s*$//g 

翻譯一下正則表達式的意思是:

  • ^匹配行
  • \s*匹配任意數量的空白字符
  • $匹配行結束的開始

所以它匹配任何只包含行的開始和結束之間的空格,並將其替換爲空(注意替換$不會覆蓋換行符)。

+0

這正是我所需要的,現在經常使用它。不過,我想知道'^'是什麼?我假設'\ s * $'是一個正則表達式來獲取一行空格,但我對這頂帽子感到困惑。 – will 2014-09-10 21:21:03

+1

@WillHarrison更新了我的答案。 '^'匹配行的開始。所以這意味着它不會刪除其他非空白行尾部的尾部空白。 – resueman 2014-09-10 21:27:23

+0

感謝您的更新。現在一切都說得通了。 – will 2014-09-11 16:07:59