Vim是否具有基于文件语法的自动注释功能?

时间:2009-06-30 14:56:23

标签: vim syntax autocomplete comments

我不确定这是可能的,但我很有意思实现这一点 理想情况下,我想将此功能映射到 SHIFT + CTRL + 3

我正在寻找让Vim输入注释(单行)的方法,该注释对应于我正在编辑的文件的语法。如果有多个单行注释样式,Vim可以自动选择一个,或者给我选择。如果单行注释包含两部分(例如/**/),则按 SHIFT + CTRL + 3 第一次将开始评论,第二次将关闭评论。

示例:

  • Python:#
  • JavaScript://
  • C,C ++:/* *///

我知道有些脚本会为你插入注释,但我没有看到任何基于文件语法的内容。

5 个答案:

答案 0 :(得分:6)

我强烈推荐NERD Commenter

答案 1 :(得分:5)

排序!我不相信vim会开箱即用,但您可以安装插件,这些插件可以进行相当智能的评论(使用移动键,视线突出显示等),这些插件特定于正在编辑的文件类型。您可以从vim.org获取这些插件,如果您不喜欢它们附带的那些,您应该可以在.vimrc文件中创建自己的键映射。

tComment非常受欢迎,并且对我有用。

我听说EnhCommentify可能会更好,但我自己没有用过。

答案 2 :(得分:3)

似乎对此类似的问题: How to comment in vim while respecting the indent?

使用书呆子评论者插件: http://www.vim.org/scripts/script.php?script_id=1218

答案 3 :(得分:2)

请参阅:this script,它提供了一个在可视模式下评论突出显示区域的功能。

您想在插入模式下开始评论,因此您的功能看起来更像是:

fun CommentLines()
  exe ":s@^@".g:Comment."@g"
endfun

答案 4 :(得分:-1)

不是你正在寻找的,但效率很高,我想你知道要使用哪个评论。 (所有这些都在命令模式下) 将光标放在要评论的第一行。然后我们将通过键入

设置一个名为a的标记(有效名称是a-z,单个字符)
ma

将光标移到最后一行,然后键入

设置一个名为b的标记
mb

然后评论整个块(通过搜索换行符并插入注释字符(注意使用"#"作为搜索分隔符,因为否则我们必须逃避" /&# 34)

:'a,'bs#^#//#

或Python:

:'a,'bs/^/#/

取消注释:

:'a,'bs#^//##

正如我们所做的那样,如果我们在文件中已有其他评论并不重要,它们将被保留。