¿Cómo seleccionar entre corchetes (o comillas o quotes) en Vim?
Estoy seguro de que solía haber un plugin para este tipo de cosas, pero ahora que lo necesito, parece que no puedo encontrarlo (naturalmente), así que voy a preguntar agradable y simple.
¿Cuál es la forma más fácil de seleccionar entre corchetes, o comillas, o generalmente una lista de caracteres coincidentes?
write ( *, '(a)' ) 'Computed solution coefficients:'
Por ejemplo, aquí me gustaría seleccionar (a)
, o Computed solution coefficients:
.
No me interesan las multilíneas, solo los casos que ocurren en una línea.
9 answers
Use cualquier tecla de navegación que desee obtener dentro de los paréntesis, luego puede usar yi(
o yi)
para copiar todo dentro de los paréntesis coincidentes. Esto también funciona con corchetes (por ejemplo, yi]
) y llaves. Además de y
, también puede eliminar o cambiar el texto (p. ej. ci)
, di]
).
Probé esto con comillas dobles y simples y parece funcionar allí también. Para sus datos, lo hago:
write (*, '(a)') 'Computed solution coefficients:'
Mueva el cursor a C
, luego escriba yi'
. Mover el cursor a una línea en blanco, golpear p
, y obtener
Computed solution coefficients:
Como CMS señaló , esto también funciona para la selección de modo visual, solo use vi)
, vi}
, vi'
, etc.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:43
Para seleccionar entre las comillas simples suelo hacer un vi'
("seleccionar comillas simples internas").
Dentro de un bloque de paréntesis, utilizo vib
("select inner block")
Dentro de un bloque de llaves puede usar viB
("B mayúscula")
Para hacer las selecciones "inclusivas" (seleccione también las comillas, paréntesis o llaves) puede usar a
en lugar de i
.
Puede leer más sobre las selecciones de objetos de texto en el manual.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-31 17:25:42
Este método de selección está integrado y bien cubierto en la ayuda de Vim. Cubre etiquetas XML y más.
Véase :help text-objects
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-31 17:33:04
Para seleccionar entre comillas simples use vi'
.
Para seleccionar entre paréntesis use vi(
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-31 17:26:54
Use flechas o hjkl
para llegar a una de las expresiones entre corchetes, luego v
para seleccionar el modo visual (es decir, seleccionar), luego %
para saltar al otro corchete.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-31 17:27:39
Escriba una función Vim en .vimrc usando la función incorporada searchpair
:
searchpair({start}, {middle}, {end} [, {flags} [, {skip}
[, {stopline} [, {timeout}]]]])
Search for the match of a nested start-end pair. This can be
used to find the "endif" that matches an "if", while other
if/endif pairs in between are ignored.
[...]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-31 17:33:31
Añadiría un detalle a la respuesta más votada:
Si está utilizando gvim y desea copiar al portapapeles, use
"+<command>
Para copiar todo el contenido entre paréntesis (o paréntesis o paréntesis rizados)
Por ejemplo: "+yi}
copiará al portapapeles todo el contenido entre los corchetes de su cursor.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-09 19:48:35
He hecho un plugin vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Proporciona objetos de texto para los pares de comillas más cercanos de cualquier tipo. Usando solo iq
o aq
le permite operar en el contenido de comillas simples ('), dobles ( " ) o hacia atrás (`) que actualmente rodean el cursor, están delante del cursor o detrás (en ese orden de preferencia). En otras palabras, salta hacia adelante o hacia atrás cuando es necesario para llegar a las comillas.
Es más fácil de entender mirando ejemplos (el cursor se muestra con |
):
- Antes:
foo '1, |2, 3' bar
; después de presionardiq
:foo '|' bar
- Antes:
foo| '1, 2, 3' bar
; después de presionardiq
:foo '|' bar
- Antes:
foo '1, 2, 3' |bar
; después de presionardiq
:foo '|' bar
- Antes:
foo '1, |2, 3' bar
; después de presionardaq
:foo | bar
- Antes:
foo| '1, 2, 3' bar
; después de presionardaq
:foo | bar
- Antes:
foo '1, 2, 3' |bar
; después de presionardaq
:foo | bar
Los ejemplos anteriores se dan para comillas simples, el plugin funciona exactamente de la misma manera para comillas dobles (") y de vuelta ( ` ).
También puede utilizar cualquier otro operador: ciq
, diq
, yiq
, viq
, etc.
Por favor, echa un vistazo a la página de github enlazada arriba para más detalles.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-09 10:05:13
Un simple mapa de teclas en vim resolvería este problema. mapa viq F " lvf " hh Este comando anterior asigna viq a las teclas para buscar entre comillas. Reemplaza " con cualquier personaje y crea tus mapas de teclas. Pega esto en vimrc durante el inicio y deberías poder usarlo cada vez.