me gustaría enumerar los partidos, cuando golpeo:¿Cómo se puede enumerar las coincidencias de la búsqueda de Vim?
/example
por lo que veo en el que todos los partidos son a la vez.
me gustaría enumerar los partidos, cuando golpeo:¿Cómo se puede enumerar las coincidencias de la búsqueda de Vim?
/example
por lo que veo en el que todos los partidos son a la vez.
" put in your ~/.vimrc file
" START search related configs and helps
"
" ignore case when searching
set ignorecase
" search as characters are entered, as you type in more characters, the search is refined
set incsearch
" highlight matches, in normal mode try typing * or even g* when cursor on string
set hlsearch
" yank those cheat commands, in normal mode type q: than p to paste in the opened cmdline
" how-to search for a string recursively
" :grep! "\<doLogErrorMsg\>" . -r
"
" how-to search recursively , omit log and git files
" :vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`
" :vimgrep /srch/ `find . -type f -name '*.pm' -o -name '*.pl'`
"
" how-to search for the "srch" from the current dir recursively in the shell
" vim -c ':vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`'
"
" how-to highlight the after the search the searchable string
" in normmal mode press g* when the cursor is on a matched string
" how-to jump between the search matches - open the quick fix window by
" :copen 22
" how-to to close the quick fix window
" :ccl
" F5 will find the next occurrence after vimgrep
map <F5> :cp!<CR>
" F6 will find the previous occurrence after vimgrep
map <F6> :cn!<CR>
" F8 search for word under the cursor recursively , :copen , to close -> :ccl
nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
" omit a dir from all searches to perform globally
set wildignore+=**/node_modules/**
" use perl regexes - src: http://andrewradev.com/2011/05/08/vim-regexes/
noremap//\v
"
" STOP search related configs and helps
El uso de :set hlsearch
resaltará todas las coincidencias en amarillo, lo que le permite escanear el archivo fácilmente en busca de coincidencias. Eso no puede ser lo que quiere, sin embargo, después de buscar,: // g p le dará el listado partidos
debe ser ': conjunto hlsearch' no ': hlsearch'. –
Es útil también mapear ': nohl' para borrar los aspectos más destacados cuando ya no los necesite. – Kos
:g//p
En su forma más larga:
:global/regular-expression/print
Usted puede dejar de lado el patrón/expresiones regulares y Vim reutilizará el término de búsqueda anterior.
Trivia: La herramienta grep fue nombrada después de esta secuencia de comandos.
Para más detalles sobre esto ... en lugar de
/example
:g//p
también se puede escribir directamente
:g/example/p
o, como p (rint) es la acción por defecto para el: g (lobular) comando, esto se puede acortar a
:g/example
Y en lugar de p (rint), otras acciones son posibles, por ejemplo borrar). Véase: Ayuda: mundial
También se puede hacer un:
g/pattern/#
que imprimirá el patrón que desea y el número de la línea.
+1 para los números de línea. – iamnotmaynard
Agradable.Pero si ya tiene habilitados los números de línea, entonces '#' no es obligatorio. ¡Muestra los números de línea por defecto –
si desea buscar en esta lista y saltar rápidamente entre los partidos, considerar el uso de
:vimgrep example %
o
:grep example %
Esto poblar la "lista de errores" con todo de las coincidencias para que pueda usar :copen
para enumerarlas todas en el búfer de solución rápida, presione enter en una línea particular para saltar a esa coincidencia, o use comandos como :cn
y :cp
para ir y venir.
para una explicación detallada, ver my reply to a similar question
+1 para la capacidad de navegar por los resultados de búsqueda! –
Otra posibilidad es utilizar el incluir comandos de búsqueda de archivos.
[I
Esto listará todas las apariciones de la palabra debajo del cursor. Sin embargo, puede ser más de lo que necesita, porque también buscará cualquier archivo que esté incluido en el archivo actual.
Pero lo bueno de este comando es que la pantalla de resultados de búsqueda también muestra un recuento del número de coincidencias, además del número de línea de cada coincidencia.
:help include-search
para ver muchas variantes.
Una nota sobre
:g//p
Esto se puede reducir adicionalmente para
:g//
porque, como otros han dicho, p (rint) es la acción por defecto.
¿Es posible obtener el resultado de '[I' con contexto, como en grep' --context 9'? –
Acabo de aprender una nueva: ¡Location List
!
Escriba :lvim foo %
para buscar foo
en el archivo actual e introduzca todas las coincidencias que contengan foo
en la lista de ubicaciones .
Escriba :lopen
para abrir la lista de ubicaciones en la ventana de revisión, que es completamente navegable como de costumbre.
Uso :lnext
/:lprevious
a TO a través de la lista (uso tpope/irreprochable asignaciones para la mejor experiencia)
¿existe una configuración para tener: lopen hecho de forma predeterminada? – lkraav
Buen consejo! Esto me llevó a hacer esta asignación que se expande automáticamente la palabra bajo el cursor y que LOPEN en un barrido: nnoremap
g/pattern
Si tiene :set number
, los números de línea de comandos muestra arriba también.
Si no ha :set number
, entonces
g/pattern/#
mostrará los números de línea.
se puede obtener un buen quickfix
ventana con los partidos forman el patrón de búsqueda actual
:vim // %
:copen
súper práctico si previamente creado un patrón de búsqueda compleja utilizando sólo /pattern
Editar: acabo de enterar esto también funciona para todos los búferes abiertos
:bufdo vimgrepadd // %
:copen
Ctrl-F a la lista de resultados de búsqueda de todo:
nmap <C-f> :vimgrep /<C-r>//g %<CR> \| !:copen <Enter>
me gusta mucho su F5- F8 ideas. Sería bueno tener algunas visualizaciones/salidas de esos comandos aquí. ¿Cómo está diseñado F8 para funcionar? ¿Busca solo el directorio actual? - - La omisión de un directorio es una costumbre - ¿por qué 'node_modules'? - - ¿Cómo las expresiones regulares perl cambian el funcionamiento predeterminado de Vim? - - La siguiente es la forma en que he diseñado mi búsqueda de archivos .tex https://askubuntu.com/a/789769/25388 Sería bueno aprender de usted cómo mejorarlo. No es tan intuitivo, así que también olvidé la lógica con frecuencia. –
node_modules es el directorio que contiene una gran cantidad de código js de los módulos npm si usted desarrolla front-ends ... es solo un ejemplo ... –
haga una copia de seguridad de usted .vimrc y agregue esa configuración, cárguela con: así que% y luego intenta ejecutar las "ayudas" en los comandos ... vim es difícil - tendrías que repetir esos miles de veces, pero una vez que los domines te reirás @todo el que apunte sus nuevas características IDE UI. .. –