我的SAS代码需要这种评论方式:
/*
* This is the comment
*/
我已经能够输入此命令(来自Vim Comment Howto):
:set comments=sl:/*,mb:*,elx:*/
问题是,一旦我输入这个set
命令,我就不知道如何将这些注释添加到代码中。说明指示键入/\*<enter>
但在插入模式下这只是正常运行,而在命令模式下,它会在*
上执行查找。
如何让它工作,并且有更好的方法来自动插入注释标记吗?
答案 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评论,我认为无论如何都不可能。