本文介绍一些vim使用技巧:删除行首和行尾的空白字符(空格和制表符),删除空行,只删除一个换行符Emptylineof删除包含空白字符的空行,但不删除只有一个换行符的空行删除包含空白字符的空行和只有一个换行符的空行行首和行尾在vi??m中,可以使用:%s/^\s\+//命令删除行首的所有空白字符。这里所说的“空白字符”是指空格和制表符,不包括换行符。该命令的参数解释如下::%s:s是替换命令,可以替换字符串,其基本格式为:s/from/to/,将"from"字符串替换为"to"字符串,正则表达式可以用来匹配特定的模式。该命令默认在光标所在行生效,:%s表示替换整个文件。^表示匹配行首,即从行首开始匹配。对于这个例子,只会匹配行首的空白字符,不会匹配单词中间的空白字符和行尾的空白字符。\s表示匹配一个空白字符,即一个空格或一个制表符。\+表示匹配前面的一个或多个连续字符,其实就是正则表达式+元字符转义。例如a\+表示匹配“a”、“aa”、“aaaaaa”等,\s\+表示匹配一个或多个空白字符,至少需要一个空白字符。/^\s\+//表示要匹配的内容是行首的一个或多个空白字符,最后两个//中间的内容为空,即被替换的内容为空,这相当于删除行首的所有空白字符。也可以使用:%s/^\s*//命令删除行首的所有空白字符,*表示匹配前面的零个或多个连续字符。这个命令会匹配行首没有空格的情况。由于被替换的内容是空的,所以没有任何作用。注意:如果写成:%s/^\s//的形式,只会删除行首的第一个空格,不能删除多个空格。写成:%s/^\+\s//的形式只能删除行首的第一个空格。同样可以使用:%s/\s\+$//命令删除行尾的所有空白字符,$表示匹配行尾。也可以写成:%s/\s*$//。使用:help:s命令查看命令的帮助说明。部分关键内容解释如下::[range]s[ubstitute]/{pattern}/{string}/[flags][count]对于[range]中的每一行,用{string}替换{pattern}的匹配项。当省略[range]和[count]时,只替换当前行。使用:help\s命令查看\s的含义如下:s空白字符:
