¿Hay un objeto de texto para la línea actual?


Respuestas:


13

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 :omapo :onoremappara definir movimientos personalizados pendientes del operador. La técnica utilizada aquí está inspirada en :help omap-info:

  1. define una asignación de modo visual que cubre el área deseada,
  2. 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.

Ver :help v_opara oen el modo visual.


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.


También hay un complemento que proporciona esta funcionalidad por vim master kana: github.com/kana/vim-textobj-line/blob/master/doc/…
Blasco
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.