¿Cómo puedo citar / citar palabras rápidamente y cambiar las citas (por ejemplo, de '
a "
) en Vim? Sé sobre el complemento surround.vim , pero me gustaría usar solo Vim.
204
¿Cómo puedo citar / citar palabras rápidamente y cambiar las citas (por ejemplo, de '
a "
) en Vim? Sé sobre el complemento surround.vim , pero me gustaría usar solo Vim.
Respuestas:
surround.vim será tu respuesta más fácil. Si realmente está dispuesto a usarlo, aquí hay algunos ejemplos de lo que puede hacer. No necesariamente el más eficiente, pero es por eso que se escribió surround.vim.
ciw'Ctrl+r"'
ciw
- Elimine la palabra en la que está el cursor y termine en modo de inserción.'
- agregue la primera cita.Ctrl+r"
- Inserte el contenido del"
registro, también conocido como el último tirón / eliminación.'
- Añadir la cita de cierre.di'hPl2x
di'
- Eliminar la palabra entre comillas simples.hP
- Mueva el cursor hacia la izquierda un lugar (en la parte superior de la cita de apertura) y coloque el texto recién eliminado antes de la cita.l
- Mueva el cursor hacia la derecha un lugar (en la parte superior de la cita de apertura).2x
- Eliminar las dos citas.va':s/\%V'\%V/"/g
va'
- Seleccione visualmente la palabra entre comillas y las comillas.:s/
- Comience un reemplazo.\%V'\%V
- Solo coincide con comillas simples que están dentro de la región seleccionada visualmente./"/g
- Reemplácelos con comillas dobles.fuente
ciw
y no solocw
? El primero me parece confuso y el segundo funciona bien.ciw
funciona independientemente de dónde esté el cursor en la palabra.cw
solo funciona si el cursor está al comienzo de la palabra. Ver:help iw
..
comando. Para que funcione, useciw' Ctrl+r Ctrl+p"
. Luego.
se comportará como lo desee para la siguiente palabra: en lugar de recordar el contenido del registro, recordará que desea lo que está en el registro en este momento (algo difícil de explicar, pero si intenta ambos, será obvio :-))Fue más fácil para mí hacerlo de esta manera
fuente
Aquí hay algunos mapas que podrían ayudar:
Si no ha cambiado la variable mapleader, active la asignación con
\q"
\q'
o\qd
. Agregan comillas dobles alrededor de la palabra debajo del cursor, comillas simples alrededor de la palabra debajo del cursor, eliminan las comillas alrededor de la palabra debajo del cursor respectivamente.fuente
map <Leader>' gewi'<Esc>A'<Esc>
a mi.vimrc
archivo para insertar comentarios de comillas simples desde la posición actual hasta el final de la línea; lo que me ayudó al convertir algunos scripts de MSDOS a bash.:vnoremap <leader>q c""<esc>P
.Además de los otros comandos, esto incluirá todas las palabras en una línea entre comillas dobles (según su comentario)
o si desea reducir la cantidad de barras invertidas, puede colocar un
\v
modificador (muy mágico) al comienzo del patrónfuente
:s/\v([a-Z]+)/"\1"/g
Las formas macro!
presione qy qpara grabar en el registro q (usamos "q" como acceso directo para recordar "comillas").
presione shift+ bmueva el cursor al frente de la palabra actual
itipo de prensa '(comillas simples)
presione escluego presione epara moverse al final de la palabra
presione y aluego presione 'nuevamente para rodear la palabra con comillas.
presione escpara ingresar al modo normal.
finalmente presione qpara grabarlo en el
q
registro.Cómo utilizar
Puedes alterarlo
step 4
con lo que quieras {una línea, una palabra hasta que encuentres algún carácter, etc.}.Hacer que la macro grabada sea persistente
guardar y Salir
abre tus archivos, ve a algunas palabras
@q
si lo haces correctamente, deberían aparecer cosas mágicas en tus palabras.
Puedes seguir estos pasos para otras macros que te encantó.
fuente
@q w
y luego podría ajustar las siguientesn
palabras con comillas usandon@j
.ciw'<C-r>"'<esc>
Funcionar entre comillas simples (por ejemplo) funciona, pero repetir no funcionará. Tratar:Esto pone el contenido del registro predeterminado "literalmente". Ahora puede presionar
.
cualquier palabra para ponerla entre comillas. Para obtener más información, vea:h[elp] i_ctrl-r
y más sobre objetos de texto en:h text-objects
Fuente: http://vimcasts.org/episodes/pasting-from-insert-mode/
fuente
ciw'<C-R><C-O>"'<Esc>
..
reescribirá el contenido de la última llamada real.Para los usuarios de VSCodeVim puedes hacer
vwS"
"
con lo que quieras envolver.w
con cualquier otro operador de selecciónfuente
viwS'
la palabra entre comillas simples. De lejos, el más fácil.viwS"
No conozco ningún comando vim incorporado para esto, pero usar
r"f'r"
para cambiar de 'a "yr'f"r'
cambiar de" a' funciona si te paras en la primera 'o ". El comandor'
reemplaza cualquier carácter que esté debajo de tu cursor con', yf"
te lleva al siguiente ".fuente
'r
y"r
), puede simplemente escribir.
Y si desea cambiar más comillas,;
y,
llevarlo al siguiente o al anterior, ya que repiten la últimaf/F/t/T
búsqueda en la misma dirección o en la opuesta, respectivamente.Agregar cotizaciones
Empecé a usar esta función rápida y sucia en mi
.vimrc
:Así que ahora, selecciono visualmente lo que quiero (típicamente a través de
viw
- seleccionar visualmente dentro de la palabra ) entre comillas y presiono Qpara comillas dobles, o presiono qpara comillas simples.Eliminar cotizaciones
Uso vim-textobj-quotes para que vim trate las citas como objetos de texto. Esto significa que puedo hacer
vaq
(seleccionar visualmente entre comillas . Esto encuentra las comillas más cercanas y las selecciona visualmente. (Esto es opcional, puede hacer algo comof"vww
). Luego presionos
para quitar las comillas de la selección.Cotizaciones cambiantes
BESO. Me quito las citas a continuación, agregan cotizaciones . Por ejemplo, para reemplazar comillas simples por comillas dobles, me gustaría realizar los pasos: comillas simples 1. Extraer:
vaqs
, 2. añadir nuevas citas:vwQ
.fuente
Si usa el complemento vim https://github.com/tpope/vim-surround (o usa el complemento VSCode Vim, que viene con vim-surround preinstalado), ¡es bastante conveniente!
añadir
soltar
cambio
¡Incluso funciona para etiquetas html!
echa un vistazo al readme en github para obtener mejores ejemplos
fuente
Aquí hay algunas asignaciones simples que pueden usarse para citar y descomponer una palabra:
fuente
qw
qd
wq
VIM para vscode lo hace increíblemente. Está basado en un vim-surround si no usa vscode.
fuente
Estoy usando nnoremap en mi .vimrc
Para comillas simples una palabra:
Para eliminar comillas (también funciona en comillas dobles):
Regla para recordar: 'sq' = comilla simple.
fuente
¿Qué tal esto?
fuente
%
, funcionará solo en la línea actual a menos que haya seleccionado el archivo completoEscribí un guión que hace esto:
Para usar, solo resalta algo, presiona control l y luego escribe un carácter. Si es uno de los caracteres que la función conoce, proporcionará el carácter de terminación correcto. Si no es así, usará el mismo carácter para insertar en ambos lados.
Surround.vim puede hacer más que esto, pero esto fue suficiente para mis necesidades.
fuente
Ejemplo de mapa en modo visual para agregar comillas simples alrededor de un bloque de texto seleccionado:
fuente