3

我想做这样的事情:我选择一些文本,然后按 Ctrl-B,所选文本被 ** 或我选择的其他符号包围。我在想,如果我能以某种方式标记选择的开始和结束位置,我可以将 Ctrl-B 映射到视觉模式下的某个组合键,该组合键在这些标记上移动并放置所需的文本。

我该怎么做?

4

3 回答 3

7

无需定义自己的映射——Tim Pope 的环绕.vim就是为这种事情而设计的!该插件提供映射以轻松删除、更改和添加环境到文本。

在您的情况下,在可视模式下进行选择后,只需键入S*,您的代码将被星号包围。

环绕声命令适用于标准动作,也适用于正常模式。如果你想改变周围的字符(比如,从*to '),你可以做cs*'.

自述文件涵盖了许多值得尝试的一般用例。

于 2012-08-10T06:59:01.933 回答
4

视觉选择的开始和结束自动分别用'<'>标记。这些会一直存在,直到做出另一个视觉选择,因此很有可能将它们用于函数和映射中的导航。

但是,正如@David 所说,听起来环绕插件完全符合您的描述。

于 2012-08-10T07:15:37.230 回答
0

如果你通过 VIM 教程,你会发现这个可视模式:

例如,为视觉选择的文本插入 '。

设置以下命令

:vnoremap qq <Esc>`>a'<Esc>`<i'<Esc>

之后视觉选择并按“qq”

于 2012-08-10T07:02:29.063 回答