如何在 Vim 中生成块注释

4
我希望使用vim自动生成块注释来做文档。例如:
/**
 * comment
 */

这个有没有相关的插件?

也许这会有帮助?:https://dev59.com/IFHTa4cB1Zd3GeqPQ2P9 - nickhar
你尝试过NerdComments吗?http://vim.sourceforge.net/scripts/script.php?script_id=1218 - greduan
我尝试了NerdComments,但是我无法弄清如何使用它。 - chovy
我需要安装病原体。你能把nerdcomments设为答案吗?如果可以,我会接受的。 - chovy
2个回答

5

Vim内置了这个功能。详见:help format-comments。基本上,如果你在你的~/.vimrc文件中写入filetype plugin on并且使用括号语言(如C、C++、Java、JavaScript等),你可以键入/**<cr>,然后它将扩展为:

/**
 * _

其中_代表光标位置。当您完成注释块时,只需按/即可结束它。


@chovy 在你的 ~/.vimrc 文件顶部附近需要添加 filetype plugin on。除此之外,还要根据你使用的文件类型进行设置。你可以使用 :se ft? 命令来查看。 - Conner

2

.vimrc中添加以下映射是一种低成本的方法,可以简化Vimmer在C或Java风格的块注释中的操作。

autocmd FileType c,java inoreabbrev <buffer> /** /**<CR>/<Up>

这样,无论何时您在C或Java源代码中键入/**<Enter>,它都会被扩展为以下内容,光标位于_处:

/**
 * _
 */

编辑:正如@Conner提到的那样,你需要在你的vimrc文件中添加filetype plugin indent on才能使这个功能生效。


@rudolph9 好的,一旦您将autocommand放入vimrc并编辑Java或C源文件,当您执行“/**<CR>”时会发生什么? - glts
我实际上没有将它放在我的.vimrc文件中,从打开的C或Java源文件运行autocmd FileType c,java inoreabbrev <buffer> /** /**<CR>/<Up>不会产生相同的效果吗? - rudolph9
@rudolph9 不是的。那行代码只是注册了自动命令。在注册后,你可以运行:e!重新打开当前的Java/C文件。然后它应该可以在不在你的vimrc中的情况下工作。 - glts
成功了!但是评论的格式却出了问题(在我的 vimrc 文件中加载到寄存器并应用于当前文件的情况下,与你所描述的情况都一样),你能解释一下“/**<CR>/<Up>”的逻辑吗? - rudolph9
@rudolph9,你需要在你的vimrc中添加必要的行filetype plugin indent on(强烈推荐!)来使它正常工作。当你打开它并触发了缩写时,一些空格和星号将自动添加以使其看起来正确。右侧内容正是你手动输入时所键入的内容。 - glts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接