vim中選擇匹配文本刪除技巧


試舉幾例如下:

  1. 如何只保留匹配內容行而刪除其他行?

:v/pattern/d
:help :v

  1. 如何對每行只保留匹配內容而刪除這一行中的其它內容
    :%s/^.pattern.$/\1/g

  2. 刪除包含特定字符串的行
    :g/pattern/d

  3. 刪除包含特定字符串的行,每次刪除前都提示
    :%s/^.pattern.\n//c

  4. 處理字符串: /123/456/789/109/example.txt, 怎么刪除到最后一個/,然后得到example.txt ?
    0dte
    解釋:0 到行首
    dte 刪到第一個e

  5. 處理字符串: /123/456/789/ef/109/example.txt, 怎么刪除到最后一個/,然后得到example.txt ?
    $T/d0
    解釋:$ 到行尾
    T/ 從后往前搜到第一個/
    d0 刪到行首
    d/ex然后回車

解釋:d 刪除
/ex 搜到第一個ex

整行匹配刪除

假如這些特定行的特征開頭字符串為“datetime”,那么批量刪除這此行的方法是,用 vim 打開日志文件,在命令模式下,鍵盤輸入:

:0,%s/^datetime.* //g
在正常模式下(按ESC進入)按鍵v進入可視化模式,然后按鍵盤左右鍵或h,l鍵即可實現文本的選擇。
其它相關命令:
v:按字符選擇。經常使用的模式,所以親自嘗試一下它。
V:按行選擇。這在你想拷貝或者移動很多行的文本的時候特別有用。

CTRL+v:按塊選擇。非常強大,只在很少的編輯器中才有這樣的功能。你可以選擇一個矩形塊,並且在這個矩形里面的文本會被高亮。

值得注意的是如果VIM中使用自動換行,那么直到你按ENTER換行前,VIM都會將你之前輸入的內容視為一行而不是你看到的好幾行,按塊選擇時就會按VIM中的行來選擇塊。

在選擇模式的時候使用上面所述的方向鍵和命令(motion)。比如,vwww,會高亮光標后面的三個詞。Vjj 將會高亮當前行以及下面兩行。

全選的方法

v + G + $ 選定全部,不過前提是光標在首行的第一個字母才可以,而使用ggVG就不用光標定位在首行了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM