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 :omapo :onoremappara definir movimientos personalizados pendientes del operador. La técnica utilizada aquí está inspirada en :help omap-info:
define una asignación de modo visual que cubre el área deseada,
usa esa asignación en una asignación pendiente de operador.
Tenga en cuenta que solía :onoremapporque il, aly 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.
Frio. ¿Te importaría explicar algunas partes? ¿Qué es o(modo de operador pendiente) en onoremap? ¿Qué hace oen 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_oo :h o.
lindhe
Explicación agregada.
romainl
1
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.
Respuestas:
Aquí hay una cruda "línea" de objetos de texto:
Y un crudo objeto de texto "buffer":
---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
porqueil
,al
yi%
todavía no existe. Si está sustituyendo un movimiento existente o de texto a objetos - por ejemploip
- debe utilizar una asignación recursiva::omap
.:help :map-operator
describe un método un poco más avanzado.Ver
:help v_o
parao
en el modo visual.fuente
o
(modo de operador pendiente) en onoremap? ¿Qué haceo
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:
De esta manera, si hacemos un "cambio de línea", respetará el nivel de sangría.
fuente