我想根据我正在编写的列添加评论,例如,如果我在缩进 4 个空格的代码上添加评论,评论应该看起来像
/* Comment -------------*/
尽可能多的破折号将行填充到第 100 列。它应该识别位置在哪里以及评论的长度。
我自己无法用 vimscript 弄清楚。
我想根据我正在编写的列添加评论,例如,如果我在缩进 4 个空格的代码上添加评论,评论应该看起来像
/* Comment -------------*/
尽可能多的破折号将行填充到第 100 列。它应该识别位置在哪里以及评论的长度。
我自己无法用 vimscript 弄清楚。
您可以使用表达式映射解决此问题;见:help :map-expr
:
:inoreabbrev <expr> comsep '/* Comment ' . repeat('-', 17 - indent('.')) . '*/'
indent()
这通过从常数中减去当前缩进 (via ) 来确定宽度。你也可以&textwidth
在这里使用。
每当您键入comsep
时,它都会被展开。或者,您也可以使用 an:inoremap <expr> <C-g> ...
代替。
要插入注释文本,您可以使用input()
,或者首先插入破折号并通过附加一些键码来重新定位光标"\<Left>
。
如果您使用像 snipMate 或 Ultisnips 这样的片段插件,它们可能具有动态修改片段的功能,但内置方法就足够了。