我想要做这样的事情:我选择一些文本,然后按Ctrl-B,选定的文本被**或我选择的其他符号包围。我在想,如果我能以某种方式标记选择的开始和结束位置,我可以将Ctrl-B映射到以可视模式移动到这些标记并放置所需文本的某种组合键。如何在vim中为自定义命令标记视觉选择?
我该怎么做?
我想要做这样的事情:我选择一些文本,然后按Ctrl-B,选定的文本被**或我选择的其他符号包围。我在想,如果我能以某种方式标记选择的开始和结束位置,我可以将Ctrl-B映射到以可视模式移动到这些标记并放置所需文本的某种组合键。如何在vim中为自定义命令标记视觉选择?
我该怎么做?
的开始和一个可视选择的端部被自动标记分别与'<
和'>
马克。这些一直持续到另一个视觉选择,所以它很可能用于在函数和映射中进行导航。
但是,正如@大卫所说,听起来像环绕插件完全符合您的描述。
没有必要定义自己的映射 - 蒂姆教皇的surround.vim是为这种事情!该插件提供了映射,可以轻松删除,更改和添加文本环境。
在你的情况,你做你的视觉模式选择后,只需键入小号*,而您的代码将被星号包围。
环绕声命令适用于标准动作,也适用于正常模式。如果你想改变周围的字符(比如,从*
到'
),你可以做Ç小号*“。
README涵盖了很多值得一试的通用案例。
如果你经历VIM教程中,你会发现这对视觉模式:
防爆插入'的视觉选定的文本。
设置下列命令
:vnoremap qq <Esc>`>a'<Esc>`<i'<Esc>
之后选择在视觉上并按下“QQ”
这是有效的,但是您需要为每个要包围的字符重新映射。此外,这种重新映射消除了从视觉模式记录宏的能力。 – 2012-08-10 09:12:51