如何创建并运行在当前视觉选择上运行的宏?

如何创建并运行在当前视觉选择上运行的宏?

我想创建一个宏,这样如果我选择一段文本(通过键盘或鼠标)并调用此宏,它会在文本周围添加[b][/b](例如)。我熟悉使用 录制宏q和运行宏@,但我不知道如何将宏与当前的可视选择联系起来。

答案1

宏与您为实现目标而键入的内容没有什么不同。处理视觉选择时,您通常会使用`<和这样的动作`>转到选择的开始和结束,并使用和插入标签ia允许gv您重新选择先前的选择。

对于您的具体示例,可能值得研究一下around.vim - 删除/更改/添加括号/引号/XML 标签插件;也许它已经满足您的要求了。

答案2

另一个值得考虑的选择是终极剪接插件。它有一个特殊的“视觉占位符”机制。

片段可以包含一个名为 ${VISUAL} 的特殊占位符。在展开片段之前,${VISUAL} 变量会随所选文本一起展开。

因此,您可以定义一个用某些特定标签围绕视觉选择的代码片段:

snippet b "surrond with [b] tag"
[b]${1:${VISUAL}}[/b]
endsnippet

或者你可以制作一个通用的代码片段,用任意标签包围视觉选择:

snippet tag "surround with a tag"
[${1}]${2:${VISUAL}}[/$1]
endsnippet

或者您可以疯狂地利用 Python 插值的强大功能对代码片段中可视化选择的文本进行任何您想要的预处理。

相关内容