在 vim 中将行块换行为自定义文本的正确方法

在 vim 中将行块换行为自定义文本的正确方法

我希望能够vim在编辑 HTML 文件时选择几行,然后输入一些热键并将这些行包含在 django 注释块中。

例如,我有:

one line
another line

我想得到:

{% comment %}
one line
another line
{% endcomment %}

答案1

我设置了以下映射来快速禁用 C++ 代码块:#if 0...#endif

:vmap 0 V'<O#if 0<Esc>'>o#endif<Esc>

其作用是设置一个仅在启用可视模式 ( vmap) 时有效的映射,禁用可视模式 ( V),转到最后一个可视选择的开头 ( '<),在其上方输入一个新行 ( O),输入“ #if 0" 文本然后退出编辑模式 ( <Esc>),然后转到最后一个视觉选择的末尾 ( '>),在下面添加一行 ( o) 并输入“#endif”文本。

您可以通过替换开始和结束文本来执行类似的操作,例如

:vmap 0 V'<O{% comment %}<Esc>'>o{% endcomment }<Esc>

请注意,这需要使用使用大写字母输入的逐行视觉模式,V而不是使用小写字母输入的逐字符视觉模式v

答案2

也许值得一看这个 vim 插件http://www.vim.org/scripts/script.php?script_id=1697

相关内容