0

我确信对此会有一个简单的答案,但我还没有找到教程和操作指南的正确部分。

我的 .vimrc 中有一个函数可以帮助生成 HTML。这是一个简单的功能,可以将选定的文本包装在具有给定名称的标签中。目前,函数签名如下所示:

function! WrapInTag( tag )

我有一张这样的地图:

vmap <Leader>tag <Esc>:call WrapInTag( tagname )<CR>

tagname就是问题所在。如何配置它以便我可以选择一个文本块,键入并让突出显示的文本被标签\tag b<CR>包围?b非常感谢我尚未找到的非常明显的教程的链接。

编辑事后,我觉得值得指出的是,检索标签名称是用户交互让我感到困惑,而不是选择文本。

4

2 回答 2

3

删除您的功能并安装环绕

于 2013-07-29T09:47:07.850 回答
3

这与将参数传递给函数(您的示例中已经有)关系不大,而是如何与用户交互,即如何获取标签名称和选定的文本。

首先,Vimscript 提供了两个函数,getchar()用于单个字符和用 .input()确认的文本Enter。像这样的东西应该工作:

vnoremap <Leader>tag <Esc>:call WrapInTag( nr2char(getchar()) )<CR>

(注意:您应该使用:noremap; 它使映射不受重新映射和递归的影响。)

文本选择存储在寄存器'<'>中。您可以使用``移动命令(或cursor())到那里,或重新选择选择并替换它,例如:normal! gvcNEW-TEXT

我希望这能让你开始。不要忘记咨询优秀的帮助并在vim.org上找到类似的插件,看看它们是如何实现的。

于 2013-07-29T10:14:57.620 回答