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...