如何在Vim的插入模式下动态添加文本
我想做的是为在我的文件中添加注释创建一个干净的结构,如下所示:如何在Vim的插入模式下动态添加文本,vim,vim-plugin,Vim,Vim Plugin,我想做的是为在我的文件中添加注释创建一个干净的结构,如下所示: /********************* * This is a comment * *********************/ 我已经设法添加了开始评论所需的初始结构,即: /********** * [TEXT] * **********/ 使用snipMate。但是现在,每当我在区域[text]中输入任何文本时,对于我输入的每个字符,都应该在上面和下面的行中添加一个星号(希望你能理解我的观点) 我想我可以使用
/*********************
* This is a comment *
*********************/
我已经设法添加了开始评论所需的初始结构,即:
/**********
* [TEXT] *
**********/
使用snipMate。但是现在,每当我在区域[text]
中输入任何文本时,对于我输入的每个字符,都应该在上面和下面的行中添加一个星号(希望你能理解我的观点)
我想我可以使用键映射imap
实现这一点,但不确定如何实现这一点。即使这样,我认为它会有点慢,所以有没有任何方法可以通过vim编程实现这一点?我只想有人给我指出正确的方向
如果有任何插件可用于此,也请提及。我有一个75宽的块,如下所示:
/***********************************/
/***********************************/
/***********************************/
/****************************************
This is a comment
****************************************/
保存在命名寄存器中(“e”,但可以是任何内容)。然后,我只是在需要时粘贴它,并用注释文本覆盖(“r”替换)中心线
没有脚本,但快速有效。如果我需要一个不同的注释方法,比如说Python的“#”,交换“e”寄存器的内容很简单。我有一个75宽的块,如下所示:
/***********************************/
/***********************************/
/***********************************/
/****************************************
This is a comment
****************************************/
保存在命名寄存器中(“e”,但可以是任何内容)。然后,我只是在需要时粘贴它,并用注释文本覆盖(“r”替换)中心线
没有脚本,但快速有效。如果我需要一个不同的注释方法,比如Python中的“#”,那么交换“e”寄存器的内容就很简单了。尽管snipMate插件提供了镜像(即将当前占位符的键入内容复制到另一个位置),但它无法对其运行转换(这里需要这样做:您希望每个键入的字符都翻译成星号)。这应该可以通过更现代的插件实现 尽管如此,我还是想请你重新考虑你的“清洁”方法评论。如果你的风格需要在特定编辑器中使用自定义插件进行特殊设置,那么你的同事/合作者很可能不会有相同的设置,因此可能会忽略你的方案。甚至你也可能会这样,当你被迫在另一台计算机/编辑器上进行编辑时。依我看,你不会失去太多美感,但会失去更多n如果您坚持使用更简单的格式,则可维护性会有很大提高,如:
/***********************************/
/***********************************/
/***********************************/
/****************************************
This is a comment
****************************************/
特别是,删除尾随右对齐的
*
使您能够使用gq
快速重新格式化注释。尽管snipMate插件提供镜像(即,将当前占位符的键入内容复制到另一个位置),但它无法对其运行转换(这里需要这样做:您希望每个键入的字符都翻译成星号)。这应该可以通过更现代的插件实现
尽管如此,我还是想请你重新考虑你的“清洁”方法评论。如果你的风格需要在特定编辑器中使用自定义插件进行特殊设置,那么你的同事/合作者很可能不会有相同的设置,因此可能会忽略你的方案。甚至你也可能会这样,当你被迫在另一台计算机/编辑器上进行编辑时。依我看,你不会失去太多美感,但会失去更多n如果您坚持使用更简单的格式,则可维护性会有很大提高,如:
/***********************************/
/***********************************/
/***********************************/
/****************************************
This is a comment
****************************************/
特别是,删除尾随的右对齐的*
使您能够使用gq
快速重新格式化注释。我使用此映射:
nnoremap <leader>g I// <Esc>A //<Esc>yyp0llv$hhhr-yykPjj
进入
我相信您可以轻松更改它以匹配您的横幅样式。我使用此映射:
nnoremap <leader>g I// <Esc>A //<Esc>yyp0llv$hhhr-yykPjj
进入
我相信您可以轻松更改它以匹配您的横幅样式。这是一个很好的建议。谢谢!这是一个很好的建议。谢谢!