VIM学习笔记 注释 (Comments)

格式化注释

例如以下代码注释:

/*
 *This is a test.
 *Of the text formatting.
 */

我们可以通过以下操作来格式化这段注释:

  1. 将光标移动到注释开头;
  2. 使用命令v进入可视化模式;
  3. 将光标移动到注释结尾;
  4. 使用命令gq来格式化注释。

结果如下:

/*
 *This is a test.Of the text formatting.
 */

comments选项

'comments'选项,是一个由逗号分隔的列表。每个部分定义一种类型的注释字符串。每个部分由成对出现的标记:字符串(flag:string)组成。

可以使用的标记{flags}包括:

n可嵌套的注释: 允许多个部分间的嵌套。
b如果一个字符后面紧跟空格或是空白符(<Space>, <Tab>, <EOL>),那么这个字符开始了一个注释。
f该注释字符串只在首行出现。下一行不重复注释,但保留相同的缩进。
s三段式注释的起始字符串
m三段式注释的中间字符串
e三段式注释的结尾字符串
l左对齐。在三段注释中,与s或e标记搭配使用。起始或结尾字符串的最左字符和中间字符串的最左字符对齐。
r右对齐。同上,但为最右字符。
O"O" 命令不把它当作注释。
x允许三段式注释用以下方式结束: 在中间字符串自动提供的情况下,在新行第一 个动作是输入结尾字符串的最后一个字符。
{digits}在和s或e标记一起使用时: 对自动插入的中间或结尾字符串增加{digit}单位的位移。该位移以左对齐的位置为基准。
-{digits}和{digits}类似,但减少缩进。这只对开始或结尾部分至少有相当数量的缩进时才有效。

例如以下C语言的注释,用“/*”开始;中间部分以“*”前导;以“*/”结尾:

/*
 * This is a comment
 */

以上注释格式可以由以下comments选项定义:

:set comments=sl:/*,mb:*,ex:*/

其中,

formatoptions选项

'formatoptions'选项用来控制Vim对文本的排版格式,它可以包含下列字符,并以逗号分隔。其缺省设置为 "tcq",建议更改为以下设置:

:set formatoptions=croql

c使用'textwidth'选项 自动回绕注释,自动插入当前注释前导符。
r在插入模式按回车时,自动插入当前注释前导符。
o在常规模式下使用o或者O命令时,自动插入当前注释前导符。
q允许使用gq命令来格式化注释。
l插入模式不分行: 当一行已经超过'textwidth'时,插入命令不会自动排版。

当输入注释的开始标记“/*”,然后按下回车键时,根据r选项,将在下一行中会自动添加注释的前导符“*”,以及紧随其后的一个空格;继续输入具体的注释文字;当想要结束注释输入时,只需要输入“/”,光标就会自动回退一格并插入“/”,即自动完成了注释输入。其结果如下:

/*
 * This is a test
 */

快速输入注释

定义快捷键,为当前行增加注释“/* ... */”:

:map = I/* <ESC>A */<ESC>

使用以下替换命令,为指定行增加注释“/* ... */”:

:1,10s!.*!/* & */!

使用以下替换命令,将删除所有“/* ... */”注释:

:%s!\s*/\*\_.\{-}\*/\s*! !g

其中,\_.将匹配包含换行在内的所有字符;\{-}表示前一个字符可出现零次或多次。请注意,被有“/* ... */”包围的所有字符也将被删除。

使用以下替换命令,将删除所有“//”注释:

:%s!\s*//.*!!

请注意,所有“//”开头的所有字符也将被删除。

使用以下替换命令,为指定行增加注释“#...”

:1,10s/^/#

使用以下替换命令,为指定行取消注释“#...”

:1,10s/^#/

如果希望快捷输入以下格式的注释块,那么可以利用Vim的缩写功能。通过:abbreviate缩写命令,可以用一个缩写来代替一组字符,此后只要输入缩写,就可以自动扩展为其代表的字符串以提高输入效率。

/****************************************************
 * Program - Solve it - Solves the worlds problems. *
 * All of them.  At once.  This will be a great     *
 * program when I finish it.                        *
 ****************************************************/

首先在vimrc配置文件中,增加以下缩写定义:

ab #b /**********************************
ab #e **********************************/

在输入代码时,只需要键入#b,然后按下回车键,即可以扩展为以下注释:

/****************************************************
 *

输入具体注释文字之后,键入#e,然后按下回车键,即可以扩展为以下注释:

****************************************************/

帮助信息

:help format-comments

命令小结

gq格式化注释
:set comments设置注释字符串格式
:set formatoptions设置文本排版格式

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>