在Vim中自动插入注释

时间:2009-06-04 16:14:01

标签: vim autocomplete comments

我的SAS代码需要这种评论方式:

/*
* This is the comment
*/

我已经能够输入此命令(来自Vim Comment Howto):

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

问题是,一旦我输入这个set命令,我就不知道如何将这些注释添加到代码中。说明指示键入/\*<enter>但在插入模式下这只是正常运行,而在命令模式下,它会在*上执行查找。

如何让它工作,并且有更好的方法来自动插入注释标记吗?

5 个答案:

答案 0 :(得分:19)

默认情况下,Vim不会自动为您插入换行符或结束标记。相反,只要'formatoptions'包含r,就可以轻松插入这些内容:

:set formatoptions+=r

在此之后,开始正常输入您的评论:“/*<Enter>”(在插入模式下)。点击Enter键后,评论标题(星号和空格)应自动出现在下一行,准备好开始输入。评论完成后,请以“<Enter>/”结尾; <Enter>移动到下一行,斜杠成为结束标记的第二个字符。是的,它会为你删除空间,但只有在你输入后才能删除。

要更轻松地修改此类评论,您还希望将c和/或o字符添加到formatoptions。前者允许注释自动换行,后者在使用常规模式命令在注释中创建新行时插入注释引导符。

答案 1 :(得分:3)

使用哪种语言?

在C Vim中自动加载此设置以进行注释:

" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

哪个有效,正如您所期望的那样。也许你需要将它添加到你正在使用的语言/扩展名的ftplugin中?

答案 2 :(得分:1)

我的.vimrc中有这个缩写:

" /// -> insert javadoc comment
iab <buffer> /// /**^M *^M*/^[0A

其中^ [0A是ctrl-v + up。
在插入模式下键入///以获得类似

的注释
/**
 * 
 */

答案 3 :(得分:1)

this Vim脚本可以解决您的问题 - 只需将其放入“vimXY / syntax”文件夹

答案 4 :(得分:1)

如果您使用多种文件类型,请记得检查您的评论样式(:set comments?)。例如,如果有嵌入式HTML,PHP有时会使用HTML样式注释<!-- ... -->,因此键入/*然后按 Enter 似乎没有效果。

我在.vimrc文件中有以下内容,以确保默认使用PHP注释

au Bufenter *.php set comments=sl:/*,mb:*,elx:*/

HTML代码仍然会被正确评论,但HTML代码中的空格可能使用PHP评论约定(如果您使用tComment等插件)并且您不会有多行HTML评论,我认为无论如何都不可能。