VIM的特别评论片段

时间:2013-10-22 14:09:19

标签: vim

我想添加依赖于我正在编写的列的注释,例如,如果我在代码中添加注释,该代码缩进4个空格,注释应该看起来像

/* Comment -------------*/

尽可能多的破折号以填充直到第100列的行。它应该识别位置在哪里以及评论的时间。

我自己无法用vimscript解决这个问题。

1 个答案:

答案 0 :(得分:4)

您可以使用表达式映射来解决此问题;见:help :map-expr

:inoreabbrev <expr> comsep '/* Comment ' . repeat('-', 17 - indent('.')) . '*/'

这通过从常量中减去当前缩进(通过indent())来确定宽度。你也可以在这里使用&textwidth

每当您输入comsep时,它都会被展开。或者,您也可以使用:inoremap <expr> <C-g> ...代替。

要插入评论文本,您可以使用input(),或者先插入短划线并通过附加一些"\<Left>个密码来重新定位光标。

如果你使用像snipMate或Ultisnips这样的代码段插件,那些可能具有动态修改代码段的功能,但内置方法应该足够了。