vim netbeans highlight

Resalte la variable debajo del cursor en Vim como en NetBeans



highlight (5)

Trabajé en NetBeans y me gustó esta característica: cuando coloca el cursor en un nombre de variable, todas las ocurrencias de la variable se resaltan. Esto es muy útil para buscar rápidamente todas las ocurrencias de la variable. ¿Es posible agregar este comportamiento a Vim?


Creo que lo que realmente quieres es el siguiente complemento de Shuhei Kubota:

http://www.vim.org/scripts/script.php?script_id=4306

Según la descripción: ''Esta secuencia de comandos resalta las palabras debajo del cursor como muchos IDEs.''

Aclamaciones.


Esta declaración permitirá que una variable se habilite / deshabilite resaltando todas las ocurrencias de la palabra debajo del cursor:

:autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf(''match IncSearch //V/<%s/>/'', escape(expand(''<cword>''), ''//')):''match none'':""

Uno activaría el resaltado con:

:let HlUnderCursor=1

Y deshabilitarlo con:

:let HlUnderCursor=0

Uno podría definir fácilmente una tecla de método abreviado para habilitar / deshabilitar el resaltado:

:nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(/"HlUnderCursor/")?HlUnderCursor*-1+1:1"<CR>

Eliminar la variable evitaría la ejecución de la declaración de coincidencia y no borraría el resaltado actual:

:unlet HlUnderCursor


Este autocomando hará lo que quieras:

:autocmd CursorMoved * exe printf(''match IncSearch //V/<%s/>/'', escape(expand(''<cword>''), ''//'))

Editar: He utilizado el grupo de resaltado IncSearch en mi ejemplo, pero puede encontrar otros colores para usar ejecutando este comando:

:so $VIMRUNTIME/syntax/hitest.vim


Si configura

:set hlsearch

para resaltar todas las apariciones de un patrón de búsqueda, y luego use * o # para encontrar las apariciones de la palabra debajo del cursor, que le llevará de la forma que desee. Sin embargo, creo que un resaltado de variable sensible a la sintaxis está más allá del alcance de VIM.


Si no desea resaltar palabras de lenguaje (declaraciones / preprocesos como if , #define ) cuando el cursor está en estas palabras, puede poner esta función en su .vimrc basado en la respuesta @too_much_php:

let g:no_highlight_group_for_current_word=["Statement", "Comment", "Type", "PreProc"] function s:HighlightWordUnderCursor() let l:syntaxgroup = synIDattr(synIDtrans(synID(line("."), stridx(getline("."), expand(''<cword>'')) + 1, 1)), "name") if (index(g:no_highlight_group_for_current_word, l:syntaxgroup) == -1) exe printf(''match IncSearch //V/<%s/>/'', escape(expand(''<cword>''), ''//')) else exe ''match IncSearch //V/</>/'' endif endfunction autocmd CursorMoved * call s:HighlightWordUnderCursor()