Answers:
这是一个粗略的“行”文本对象:
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>
- -编辑 - -
“操作者”是一个命令,它本身并不做任何事情:d,y,等。
按下这些键,您将进入“操作者待命模式”,Vim在其中等待您通过“操作者待命动作”告诉它您要对其进行什么操作。
您可以使用:omap或:onoremap定义自定义操作员待定的动作。此处使用的技术的灵感来自:help omap-info:
请注意,我使用了:onoremap因为是il,al并且i%还不存在。如果要覆盖现有的运动或文本对象(例如ip),则必须使用递归映射::omap。
:help :map-operator 描述了一种稍微高级的方法。
见:help v_o的o视觉模式。
oonoremap中的(操作员暂挂模式)?什么是o视觉模式呢?我想这是“另一面”,因为它似乎跳到了选择的另一面...我如何找到:h它?我无法使用:h x_o或找到它:h o。
我建议使用^而不是0(因此,该行从第一个字符的开头开始):
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
这样,如果我们“在线更改”,它将尊重缩进级别。