¿Cómo puedo resaltar todas las apariciones de una palabra seleccionada en GVim, como en Notepad ++?
159
En modo normal:
:set hlsearch
Luego busque un patrón con el comando /en modo Normal, o <Ctrl>oseguido /en modo Insertar. *en modo Normal buscará la próxima aparición de la palabra debajo del cursor. La hlsearchopción los resaltará a todos si está configurado. #buscará la aparición previa de la palabra.
Para eliminar el resaltado de la búsqueda anterior:
:nohlsearch
Es posible que desee asignar :nohlsearch<CR>a alguna tecla conveniente.
hlsearchmucho, es posible que desee asignar en:set hlsearch!lugar de:set nohlsearch. Esto alterna la configuración en lugar de apagarla siempre.*o#por<Ctrl>oen el modo normal.:nohlsearch, simplemente puede usar:noh.vimrc:noremap <F4> :set hlsearch! hlsearch?<CR>para alternar entre resaltado y eliminar resaltado por<F4>.La
*tecla resaltará todas las apariciones de la palabra que está debajo del cursor.fuente
&hlsearchestá encendido.#.Sé que es una pregunta muy antigua, pero si alguien está interesado en esta función, puede consultar este código http://vim.wikia.com/wiki/Auto_highlight_current_word_when_idle
fuente
de la manera más simple, escriba en modo normal
*También tengo estas asignaciones para habilitar y deshabilitar
Seleccione la palabra haciendo clic en ella
Bonus: CountWordFunction
Seleccionando la palabra con el mouse y contando las ocurrencias a la vez: OBS: Observe que en esta versión tenemos el comando "CountWord" al final
fuente
nnoremap * *``cgnynnoremap # #``cgN*, después de escribir , ¿cómo desactivo el resaltado?:noho:nohlsearchnnoremap <silent> * :execute "normal! *N"<cr>ynnoremap <silent> # :execute "normal! #n"<cr>? Estos solo resaltan la palabra debajo del cursor pero no la mueven a la siguiente ocurrencia.Las soluciones basadas en búsquedas ( *, /...) mueven el cursor, lo cual puede ser desafortunado.
Una alternativa es usar el complemento mark.vim mejorado , luego complete su
.vimrcpara dejar que haga doble clic en el resaltado de activación (no sé cómo una selección de teclado puede activar un comando):Permite múltiples resaltados, persistencia, etc.
Para eliminar el resaltado, ya sea:
:Mark(apagar hasta la próxima selección):MarkClearfuente
:set noincsearch. En mi opinión, es una de las características más molestas de Vim y una de las primeras cosas que deshabilito para nuevas instalaciones.*moverá incondicionalmente el cursor. Y no puedo ver cómoincsearchpodría ser molesto, ya que es solo un "mirar hacia adelante", realizar la búsqueda actual sin cambiar realmente su posición.incsearchevitaría el movimiento, pero una prueba rápida confirma que estás en lo correcto. Mis disculpas. Sin embargo, es muy fácil de crear una asignación que impide el movimiento::nnoremap * *N. No puedo creer que no te moleste que tu cursor salte por toda la pantalla mientras realizas una búsqueda. Pero ... estas cosas son completamente subjetivas. Vive la différence ;-):let @/='hilight_this', suponiendo que lo hayahlsearchhabilitado. Destaca el texto sin saltar, y no tiene que cambiar la configuración existente. Esto cambia el valor que está almacenado actualmente en el registro de búsqueda.Primero (o en tu .vimrc):
Luego coloca el cursor sobre la palabra que deseas resaltar y presiona
*.hlsearchsignifica resaltar todas las ocurrencias de la búsqueda actual, y*significa buscar la palabra debajo del cursor.fuente
Primero asegúrese de que hlsearch esté habilitado emitiendo el siguiente comando
También puede agregar esto a su archivo .vimrc como conjunto
ahora cuando utiliza el mecanismo de búsqueda rápida en modo comando o un comando de búsqueda normal, todos los resultados se resaltarán. Para avanzar entre resultados, presione 'n' para retroceder presione 'N'
En modo normal, para realizar una búsqueda rápida de la palabra debajo del cursor y saltar a la siguiente aparición con un comando, presione '*', también puede buscar la palabra debajo del cursor y moverse a la aparición anterior presionando '# '
En modo normal, la búsqueda rápida también se puede invocar con
para eliminar aspectos destacados en el uso de las ocupaciones, he vinculado esto a un acceso directo en mi .vimrc
fuente
Habilitar el resaltado de búsqueda:
Luego busca la palabra:
fuente
Mi favorito para hacer esto es el complemento mark.vim . Permite resaltar varias palabras en diferentes colores simultáneamente.
Captura de pantalla de ejemplo
fuente
para resaltar la palabra sin mover el cursor, plop
en tu vimrc.
Lo bueno de esto es
g*yg#seguirá funcionando como "normal"*y#.Para establecer
hlsearchfuera, puede utilizar "forma corta" (a menos que tenga otra función que comienza con "Noh" en el modo de comandos)::noh. O puedes usar la versión larga::nohlsearchPara una conveniencia extrema (me encuentro alternando
hlsearchquizás 20 veces por día), puede asignar algo para alternar de estahlsearchmanera:.:. si
<leader>es \(es por defecto), puede presionar \st(rápidamente) en modo normal para alternarhlsearch.O tal vez solo quieras tener un
:nohmapa:Lo anterior simplemente se ejecuta de
:nohlsearchmanera que (a diferencia de:set hlsearch!) todavía resaltará la palabra la próxima vez que presione *o #en modo normal .salud
fuente
tal vez ?
fuente
Utilizar
autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))Asegúrate de haber
IncSearchestablecido algo. por ejcall s:Attr('IncSearch', 'reverse'). Alternativamente, puede usar otro grupo destacado en su lugar.Esto resaltará todas las apariciones de palabras debajo de su cursor sin demora. Me parece que una demora me ralentiza cuando paso el código. El color de resaltado coincidirá con el color de la palabra, por lo que se mantiene consistente con su esquema.
fuente
¿Por qué no solo: z /
Eso resaltará la palabra actual debajo del cursor y cualquier otra ocurrencia. Y no tiene que dar un comando separado para cada elemento que está buscando. ¿Quizás eso no está disponible en el impío gvim? Está en vim por defecto.
* solo es bueno si desea que el cursor se mueva a la siguiente aparición. Al comparar dos cosas visualmente, a menudo no desea que se mueva el cursor, y es molesto presionar la tecla * cada vez.
fuente
~/.vimrcarchivo" highlight the searched items set hlsearch " F8 search for word under the cursor recursively , :copen , to close -> :ccl nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>:so%En el modelo normal, pasa la palabra.
Presione * Presione F8 para buscar recursivamente debajo de todo su proyecto sobre la palabra
fuente
Por ejemplo, este plugIns:
https://github.com/rrethy/vim-illuminate
https://github.com/itchyny/vim-cursorword
Solo busque debajo del cursor en vimawesome.com
La clave, como mencionó clagccs , es que lo más destacado NO entra en conflicto con su búsqueda : https://vim.fandom.com/wiki/Auto_highlight_current_word_when_idle
Captura de pantalla de cómo NO entra en conflicto con la búsqueda:
Notas:
fuente