当前行是否有文本对象?


Answers:


13

这是一个粗略的“行”文本对象:

xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>

还有一个粗略的“缓冲区”文本对象:

xnoremap i% GoggV
onoremap i% :normal vi%<CR>

- -编辑 - -

“操作者”是一个命令,它本身并不做任何事情:dy,等。

按下这些键,您将进入“操作者待命模式”,Vim在其中等待您通过“操作者待命动作”告诉它您要对其进行什么操作。

您可以使用:omap:onoremap定义自定义操作员待定的动作。此处使用的技术的灵感来自:help omap-info

  1. 您定义了覆盖所需区域的可视模式映射,
  2. 您可以在运营商待定的映射中使用该映射。

请注意,我使用了:onoremap因为是ilal并且i%还不存在。如果要覆盖现有的运动或文本对象(例如ip),则必须使用递归映射::omap

:help :map-operator 描述了一种稍微高级的方法。

:help v_oo视觉模式。


凉。您介意解释一下吗?什么是oonoremap中的(操作员暂挂模式)?什么是o视觉模式呢?我想这是“另一面”,因为它似乎跳到了选择的另一面...我如何找到:h它?我无法使用:h x_o或找到它:h o
lindhe

添加说明。
romainl '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.