使用linux服务器,免不了和vi编辑打交道,命令行下删除数量少还好,如果删除很多,光靠删除键一点点删除真的是头痛,还好Vi有快捷的命令可以删除多行、范围。
删除行
在Vim中删除一行的命令是dd。
以下是删除行的分步说明:
1、按Esc键进入正常模式。
2、将光标放在要删除的行上。
3、键入dd并按Enter键以删除该行。
注:多次按dd将删除多行。
删除多行
要一次删除多行,请在dd命令前添加要删除的行数,例如,要删除五行,请执行以下操作:
1、按Esc键进入正常模式。
2、将光标放在要删除的第一行上。
3、键入5dd并按Enter键以删除接下来的五行。
删除行范围
删除一系列行的语法如下:
:[start],[end]d
例如,要删除从3到5的行,您可以执行以下操作:
1、按Esc键进入正常模式。
2、输入:3,5d,然后按Enter键以删除行。
您还可以使用以下字符来指定范围:
.(点)-当前行。
$-最后一行。
%-所有行。
这里有一些例子:
:.,$d-从当前行到文件末尾。
:.,1d-从当前行到文件开头。
10,$d-从第十行到文件末尾。
删除所有行
要删除所有行,您可以使用代表所有行的%符号或1,$范围:
1、按Esc键进入正常模式。
2、键入%d,然后按Enter键以删除所有行。
删除包含模式的行
基于特定模式删除多行的语法如下:
:g//d
全局命令(g)告诉删除命令(d)删除所有包含的行。
要匹配与模式不匹配的行,请在模式之前添加感叹号(!):
:g!//d
模式可以是文字匹配或正则表达式,以下是一些示例:
:g/foo/d-删除所有包含字符串“foo”的行,它还会删除“foo”嵌入较大字词(例如“football”)的行。
:g!/foo/d-删除所有不包含字符串“foo”的行。
:g/^#/d-从Bash脚本中删除所有注释,模式^#表示每行以#开头。
:g/^$/d-删除所有空白行,模式^$匹配所有空行。
:g/^\s*$/d-删除所有空白行,与前面的命令不同,这还将删除具有零个或多个空格字符(\s*)的空白行。