Respuestas:
Aquí hay una cruda "línea" de objetos de texto:
xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
Y un crudo objeto de texto "buffer":
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
---EDITAR---
Un "operador" es un comando que no hace nada por sí misma: d
, y
, etc.
Presionando esas teclas lo pone en "modo pendiente de operador", donde Vim espera a que le diga en qué quiere que opere ... con un "movimiento pendiente de operador".
Puede usar :omap
o :onoremap
para definir movimientos personalizados pendientes del operador. La técnica utilizada aquí está inspirada en :help omap-info
:
Tenga en cuenta que solía :onoremap
porque il
, al
y i%
todavía no existe. Si está sustituyendo un movimiento existente o de texto a objetos - por ejemplo ip
- debe utilizar una asignación recursiva: :omap
.
:help :map-operator
describe un método un poco más avanzado.
Ver :help v_o
para o
en el modo visual.
o
(modo de operador pendiente) en onoremap? ¿Qué hace o
en modo visual? Supongo que es "el otro lado", porque parece saltar al otro lado de una selección ... ¿Cómo puedo encontrarlo :h
? No puedo encontrarlo con :h x_o
o :h o
.
Sugeriría una solución adicional, para usar ^ en lugar de 0 (para que la línea comience al comienzo del primer carácter:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
De esta manera, si hacemos un "cambio de línea", respetará el nivel de sangría.