我想要做的是创建一个干净的结构,在我的文件中添加注释,如下所示:
/*********************
* This is a comment *
*********************/
我设法添加了开始评论所需的初始结构:
/**********
* [TEXT] *
**********/
使用snipMate。但现在,每当我在区域[TEXT]
中输入任何文本时,对于我输入的每个字符,都应在上下行中添加星号(希望您能得到我的观点)。
我想我可以使用键映射imap
来实现这一点,但不知道如何处理这个问题。即便如此,我认为它会有点慢,所以有什么方法可以通过vim编程实现这一点吗?我只是希望有人指出我正确的方向。
如果有可用的插件,请同时提及。
答案 0 :(得分:3)
虽然snipMate插件提供了镜像(即将当前占位符的类型内容复制到另一个位置),但它无法在其上运行转换(这里需要这个:你想要每个要键入的字符要翻译成星号)。这应该可以使用更现代的UltiSnips - The ultimate snippet solution for python enabled Vim插件。
尽管如此,我还是会请你重新考虑你的“干净”评论方法。如果您的样式需要在特定编辑器中使用自定义插件进行特殊设置,则您的同事/协作者可能无法使用相同的设置,因此可能会忽略您的方案。当你被迫在另一台计算机/编辑器上进行编辑时,这甚至可能是你。 IMO,你不会失去太多的美丽,但如果你坚持简单的格式化,可以获得很多可维护性,如下:
/****************************************
This is a comment
****************************************/
特别是,删除尾随的右对齐*
可让您使用gq
快速重新格式化评论。
答案 1 :(得分:1)
我有一个像这样的75宽的块:
/***********************************/
/***********************************/
/***********************************/
保存在指定的寄存器中(“e”但可以是任何内容)。然后我在需要时粘贴它并用注释文本覆盖(“r”替换)中心线。
没有脚本但快速有效。如果我需要一个不同的注释方法,对Python说“#”,交换“e”寄存器的内容是微不足道的。
答案 2 :(得分:1)
我使用这种映射:
nnoremap <leader>g I// <Esc>A //<Esc>yyp0llv$hhhr-yykPjj
转
hsdjsfdsgdfsdgfsdgf
到
//---------------------//
// hsdjsfdsgdfsdgfsdgf //
//---------------------//
我确信您可以轻松更改它以符合您的横幅样式。