He comenzado a aprender la búsqueda de palabras Vim usando *
y #
mientras el cursor está sobre la palabra actual. Pero esta búsqueda se limita al búfer de archivo actual.
¿Hay un comando o un atajo para extender esta búsqueda a:
- todas las pestañas abiertas?
- todos los tampones abiertos?
Respuestas:
No tengo una solución exacta para su problema, espero que aparezca una respuesta mejor que la mía. Pero así es como abordé el problema de encontrar una palabra en todos los buffers.
La primera línea crea un comando
Search
con el patrón de búsqueda como argumento, que escribe los resultados en una lista de soluciones rápidas. Las otras dos líneas asignan las teclas de flecha inútiles (al menos para mí) a algo útil; se asignan para saltar a la búsqueda siguiente / anterior o al error de compilación siguiente / anterior, etc., simplemente avanzan por la lista de soluciones rápidas. Puede usar esto de la siguiente manera:fuente
:cn
o:cp
cambiar al siguiente documento.En realidad, es el comportamiento predeterminado, aunque puede ser difícil de notar: intente
*
cambiar a otra pestaña y usen
ansN
en el modo de comando para saltar hacia adelante y hacia atrás entre los resultados de búsqueda.Esto puede tener más sentido si primero activa el resaltado para todos los éxitos:
fuente
hlsearch
eso no lo sabía, y cuál habría buscado un día u otro :-). Sin embargo, por defecto he intentado * #, ny N, y no salta a otros búferes de archivos ...n
yN
no salte buffers (se envuelven), pero el término al que se dirigen se busca en todas las pestañas; golpe*
con el que destaca el ciclo de entonces a través de sus pestañas - todos ellos se resaltará con el mismo plazo, lo que puede utilizarn
yN
no localmente sin una nueva búsqueda.hlsearch
configurado.fuente
Como me he encontrado haciendo esto frecuentemente, combiné un script (mejorable).
Usted u otra persona pueden encontrarlo útil.
Breve explicación:
Básicamente, busca en la lista de búfer y muestra el resultado en la ventana quickfix.
Se agregan dos comandos básicos.
Search <pattern>
: Buscar todos los buffers para<pattern>
.Search1 <pattern>
: Busca todos los búferes<pattern>
, pero solo muestra el primer resultado para cada búfer. Típicamente útil para enumerar todos los buffers dondefoo
se usa la función, variable (o lo que sea).Use bang (
:Search! foo
) para agregar a los resultados.Además
GSearch
yGSearch1
se agrega donde la diferencia es que conSearch
el script agregue delimitador de expresiones regulares, por ejemplo:Donde como se
GSearch
espera que esté encerrado.La
j
bandera siempre se agrega para evitar el salto.Código:
Hay algunos hacks para evitar la lista de errores y al mismo tiempo mantener el código corto.
try / catch
fue un poco engorrosobufdo
.fuente