1

我想根据我正在编写的列添加评论,例如,如果我在缩进 4 个空格的代码上添加评论,评论应该看起来像

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

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

我自己无法用 vimscript 弄清楚。

4

1 回答 1

4

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

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

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

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

要插入注释文本,您可以使用input(),或者首先插入破折号并通过附加一些键码来重新定位光标"\<Left>

如果您使用像 snipMate 或 Ultisnips 这样的片段插件,它们可能具有动态修改片段的功能,但内置方法就足够了。

于 2013-10-22T14:17:32.397 回答