2012-08-10 71 views
2

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

我该怎么做?

回答

4

的开始和一个可视选择的端部被自动标记分别与'<'>马克。这些一直持续到另一个视觉选择,所以它很可能用于在函数和映射中进行导航。

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

6

没有必要定义自己的映射 - 蒂姆教皇的surround.vim是为这种事情!该插件提供了映射,可以轻松删除,更改和添加文本环境。

在你的情况,你做你的视觉模式选择后,只需键入小号*,而您的代码将被星号包围。

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

README涵盖了很多值得一试的通用案例。

0

如果你经历VIM教程中,你会发现这对视觉模式:

防爆插入'的视觉选定的文本。

设置下列命令

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

之后选择在视觉上并按下“QQ”

+0

这是有效的,但是您需要为每个要包围的字符重新映射。此外,这种重新映射消除了从视觉模式记录宏的能力。 – 2012-08-10 09:12:51