salir pegar numero linea editar copiar buscar borrar search vim

search - pegar - vi numero de linea



¿Cómo puedes enumerar los partidos de la búsqueda de Vim? (11)

Me gustaría enumerar las coincidencias, cuando presiono:

/example

para que vea dónde están todas las coincidencias a la vez.


Acabo de aprender uno nuevo: ¡la Location List !
Escriba :lvim foo % para buscar foo en el archivo actual e ingrese 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.
Use :lnext / :lprevious to to a través de la lista (use tpope / mapeos no alterados para la mejor experiencia)


Ctrl-f para listar todos los resultados de búsqueda:

nmap <C-f> :vimgrep /<C-r>//g %<CR> /| !:copen <Enter>


Otra posibilidad es usar los comandos de búsqueda de archivos include.

[I

Esto listará todas las ocurrencias de la palabra debajo del cursor. 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 aún más

:g//

porque, como han dicho otros, p (rint) es la acción predeterminada.


Para elaborar sobre esto ... en lugar de

/example :g//p

también puedes escribir directamente

:g/example/p

o, como p (rint) es la acción predeterminada para el comando: g (lobal), esto se puede acortar a

:g/example

Y en lugar de p (rint), otras acciones son posibles, por ej. D (elete). Ver: ayuda: global


También puedes hacer un:

g/pattern/#

que imprimirá el patrón que desee y el número de la línea.


Usando :set hlsearch resaltará todas las coincidencias en amarillo permitiéndole escanear el archivo fácilmente para buscar coincidencias. Sin embargo, puede que eso no sea lo que quieres después de buscar: g // p te dará las coincidencias enumeradas


puede obtener una buena ventana de quickfix con las coincidencias de su patrón de búsqueda actual

:vim // % :copen

súper útil si previamente diseñó un patrón de búsqueda complejo usando solo /pattern

Editar : acaba de descubrir que esto también funciona para todos los búferes abiertos

:bufdo vimgrepadd // % :copen


si quieres ver esta lista y saltar rápidamente entre los partidos, considera usar

:vimgrep example %

o

:grep example %

Esto completará la "lista de errores" con todas las coincidencias para que pueda usar :copen para listarlas 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 ir y venir

para una explicación completa, ver mi respuesta a una pregunta similar


" 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


:g//p

En su forma más larga:

:global/regular-expression/print

Puede omitir el patrón / expresión regular y Vim volverá a utilizar el término de búsqueda anterior.

Trivia: La herramienta grep recibió su nombre después de esta secuencia de comandos.


g/pattern

Si tiene :set number , el comando anterior muestra los números de línea también.

Si no lo has hecho :set number , luego

g/pattern/#

mostrará los números de línea.