supongo que tengo los siguientes textos:
aaa-dd-e: "aaa",
bb-x: "bb",
c-9: "c"
Quiero hacer la selección como a continuación:
aaa-dd-e:
"aaa",
bb-x:
"bb",
c-9:
"c"
Intenté usar cv para crear un bloque visual, pero después de crear la selección en la primera columna y presionar "f:" (quise expandir la selección a la marca de dos puntos en cada línea como arriba), lo que obtengo es:
aaa-
dd-e: "aaa",:
bb-x
"bb",
c-9:
"c"
la selección se detiene en el primer colon y crea un rectángulo.
visual-mode
Aaron Shen
fuente
fuente
Respuestas:
La selección es generalmente un medio para un fin, más aún en Vim, donde la selección a menudo no es necesaria en primer lugar.
Suponiendo que todavía desea poner comillas alrededor de los nombres de propiedad en su archivo no JSON para convertirlo en JSON adecuado:
:'<,'>norm I"^[f:i"
('<,'>
se inserta automáticamente para usted y^[
se obtiene con<C-v><Esc>
).Si tiene el hermoso complemento surround, el paso 2 se convierte en:
Con una sustitución, el paso 2 podría convertirse en:
fuente
:g/regex/norm
, simplemente puedo lograr lo que quiera hacer."+y
o"*y
, según el portapapeles al que desee apuntar. Hay muchas preguntas relacionadas por aquí.Vim solo admite selecciones rectangulares en bloques, con la excepción del borde derecho irregular cuando presiona
$
.Hay complementos (como vim múltiples cursores ) que pueden emular múltiples selecciones, pero también debería ser capaz de alcanzar su objetivo real (que desafortunadamente no mencionó) con comandos puros de Vim, por ejemplo
:global
y:substitute
(si puede formular un regular expresión que coincide con la selección en cada línea), o repitiendo macros (si hay un movimiento particular que cubre la selección en cada línea).fuente
Solo para lanzar otro sombrero al ring, si realmente quieres usar la selección visual, puedes usar el complemento Tabular para alinear los dos puntos, luego haz tu selección visual.
Si toma su texto original:
:Tab /:\zs
alineará todo después del colon, como a continuaciónY luego puedes hacer tu selección de bloque visual.
Sin embargo, como han dicho otros, la selección visual probablemente no sea necesaria en esta situación. El uso
norm
o la sustitución probablemente puede lograr lo que desea sin preocuparse por las selecciones visuales.fuente
¡He encontrado una solución a este problema que es sorprendentemente simple! ¡Inicie el modo de bloque visual desde la parte inferior de la selección del texto que desea copiar y seleccione hacia arriba! Expandirá el bloque a medida que sube, mientras que si resalta hacia abajo parece hacer que la selección sea más pequeña.
fuente