2012-02-27 11 views

Respuesta

14

Hay esta función que estaba flotando alrededor de la web cuando estaba haciendo lo mismo:

function! SynStack() 
    if !exists("*synstack") 
    return 
    endif 
    echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")') 
endfunc 
+0

Gracias. Ayudame mucho – kev

+0

Si está aquí porque está tratando de diagnosticar un montón de resaltado rojo, eso es [debido a la revisión ortográfica] (http://stackoverflow.com/questions/28647994/annoying-red-highlighting-of-random-words-in- vim) y SynStack() no parece detectar eso por alguna razón. – Von

0

Prueba esto:

" diagnostics {{{ 
if has('balloon_eval') 
    nnoremap <F12>   : setl beval!<CR> 
    set bexpr=InspectSynHL() 
endif 
fun! InspectSynHL() 
    let l:synNames = [] 
    let l:idx = 0 
    for id in synstack(v:beval_lnum, v:beval_col) 
     call add(l:synNames, printf('%s%s', repeat(' ', idx), synIDattr(id, 'name'))) 
     let l:idx+=1 
    endfor 
    return join(l:synNames, "\n") 
endfun 
"}}} 
2

La siguiente función es la salida tanto el nombre de la sintaxis grupo y el grupo de sintaxis traducida del carácter en el que se encuentra el cursor:

function! SynGroup()                
    let l:s = synID(line('.'), col('.'), 1)          
    echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name') 
endfun 

Para hacer esto más conveniente, puede ser envuelto en un comando personalizado o enlace de clave.

¿Cómo funciona esto:

  • line('.') y col('.') devuelve la posición actual
  • synID(...) devuelve un ID de sintaxis numérico
  • synIDtrans(l:s) traduce el identificador de sintaxis numérico l:s siguiendo relieve los vínculos
  • synIDattr(l:s, 'name') devuelve el nombre correspondiente a la sintaxis numérica ID

Esto se hará eco de algo como:

vimMapModKey -> Special 
+0

Encuentro esto considerablemente mejor que la respuesta aceptada porque a menudo me ahorra seguir a través de uno o más 'enlaces para resaltar entradas' cuando trato de descubrir qué estoy buscando cambiar. –

Cuestiones relacionadas