vim刪除以 ,空格開頭的行

2022-08-28 02:18:08 字數 2166 閱讀 2902

1,刪除以#號開頭的行:

:g/^#/d

:%s/^#.*\n

2,刪除以空格開頭的行:

:g/^\s/d                「\s代表空格」

:%s/^\s.*\n

3,刪除以空格#開頭的注釋行:

:g/^\ .*#/d             「(.*)代表若干」

:%s/^\s.*#.*\n//g

4,刪除空白行:

:g/^$/d

:g/^\s*$/d               「刪除由空格組成的行」

:g/^[\s|\t]*$/d          「刪除由空格或tab鍵開頭到結尾的行」

:g/^[ |\t]*$/d          「刪除由空格或tab鍵開頭到結尾的行」

5,刪除行首空格:

:%s/^\s\+                「\+代表乙個或多個\s」

6,刪除行末空格:

:%s/\s\+$            

7,加#注釋所有行:

:%s/^/#/g

8,查詢注釋掉的config:

/^#.*config.*$

9,取消第70到79行開頭的#號

:70,79s/^#//g

問題:httpd.conf配置檔案中存在很多以#號開頭的行,請使用vim相關指令刪除#開頭的行.

更新:最終答案為:

:g/ *#.*/d

以下全部為探索過程!

答案:    :1,$s/^#.*//g 或 :1,$s/^#.*//  (不用g也行)

但這樣只會把第乙個字元是#的行刪掉,不會把空格開頭,但#為首字元的字段刪掉,所以下面是改進版:

:1,$s/ *#.*//

效果:

但此時仍有很多空行,下面刪去空行:

:g/^\s*$/d

簡單解釋一下:

g :全區命令

/ :分隔符

^\s*$ :匹配空行,其中^表示行首,\s表示空字元,包括空格和製表符,*重複0到n個前面的字元,$表示行尾。連起來就是匹配只有空字元的行,也就是空行。

/d :刪除該行

最終效果:

筆記:

1,$:對所有行生效.(從第一行到最後一行($)都生效)

s/x/y/:將x替換為y.

^#:開頭為#的.

.*:和後面若干個字元.

g:(global)全域性的.例如,s/x/y/只會將一行中第乙個x替換為y,但s/x/y/g會將一行中所有的x替換為y.

^:[反向選擇] 或 [定位在行首],在內代表反向選擇,在外代表定位在行首.

$:定位在行尾.

.(小數點):代表[一定有乙個任意字元].

舉例: #grep -n 'g..d' xx.txt

意義:從xx.txt中找出有開頭是g,結尾時d,g和d中間必有兩個字元的行.

*(星號):代表[重複前乙個字元,0到無窮多次]

舉例:[xx*] 第乙個x必須有,第二個x可有可無,x*是一起的.

vim 刪除每行開頭結尾空格

刪除多餘的空格 行末 行首 空格 s 行末空格 s 行首空格 s 有些人認為行末的空格是無用,浪費而難看的。要刪除這些每行後面多餘的空格,可以 執行如下命令 s s 命令前面指明範圍是 所以這會作用於整個檔案。substitute 命令的匹配模式是 s 這表示行末 前的乙個或者多個 空格 s 後面我...

vim 刪除每行開頭結尾空格

刪除多餘的空格 行末 行首 空格 s 行末空格 s 行首空格 s 有些人認為行末的空格是無用,浪費而難看的。要刪除這些每行後面多餘的空格,可以 執行如下命令 s s 命令前面指明範圍是 所以這會作用於整個檔案。substitute 命令的匹配模式是 s 這表示行末 前的乙個或者多個 空格 s 後面我...

自動刪除vim中行尾空格

平時寫 的時候,不會注意每行行尾的空格,直到git提交 的時候,通過git status 檢視,發現新增的 行尾都有空格,影響了 的格式,這個時候就需要通過vim中刪除.方法1 vim 開啟檔案執行 和 中間有空格,只能刪除行尾空格,對於tab不能刪除 s g 可以刪除行尾多餘的空格和tab符號 s...