Come colorare i commenti dopo una colonna definita


8

Una volta mi è stato dato questo materiale per consentire a questo aiutante vimdi mostrare il tipo di una linea verticale al fine di aiutare a far rispettare le regole PEP8 sul limite di lunghezza della linea nella colonna 80:

"   Long lines highlighting.
nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
    if !&diff
        if !exists('w:longlinehl')
            let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
            echo "Long lines highlighted"
        else
            call matchdelete(w:longlinehl)
            unl w:longlinehl
            echo "Long lines unhighlighted"
        endif
    endif
endfunction

In azione:

Evidenziatore a linea lunga in azione

Uso tutto questo per contrassegnare l'80a colonna.

Dato il tempo e gli sforzi sufficienti, potrei davvero avere una struttura simile vimper contrassegnare il testo ben oltre la colonna 72 solo quando in commento. Immagino che sia già stato codificato da qualcuno da qualche parte ad un certo punto. Sai già dove trovare quello snippet?


Puoi scoprire se qualcosa è evidenziato come commento con synID()e synIDattr(). Qualcosa del tipo: if ((synIDattr(synID(line("."), 72, 0), "name") =~ 'comment\c')
Tumbler41,

Dovrei link che ad una nnoremapo autocmdo qualcosa del genere? Scrivere quello sulla :console ha gettato E110e E15🙁.
13260,

Risposte:


10

Prova una regione di sintassi contenuta:

syn match TooLong contained containedin=pythonComment /\%50c.*/
hi link TooLong Error

Invece di 50utilizzare 80o di 72o qualsiasi colonna che si preferisce.

inserisci qui la descrizione dell'immagine


Quale vimversione è quella?
13260

1
8.0.586, usando molokai come colorazione.
Muru,

Ti piace vim --versionpresentare VIM - Vi IMproved 8.0.586 ...? Non sono sicuro di quello che sto facendo, ma penso che non funzioni per me come il tuo. Il mio sta dicendo VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 10 2017 00:54:29) ..., questo è il VIM alla vaniglia di Debian Jessie.
13260

Non c'è nulla di particolarmente nuovo in questo, tutte le funzionalità che sto usando qui sono piuttosto vecchie e dovrebbero funzionare con 7.4.488 di Jessie (perché funziona anche con Vim 7.4.160 di CentOS 7). Dimmi, l'hai provato in un file Python? Da quando hai citato PEP8, ho usato il containedin=pythonComment. Se stai usando qualche altro tipo di file, dovrai cercare qual è la regione della sintassi per i commenti e usarla invece.
Muru,

2
@uprego Esegui questi comandi dopo aver aperto un file Python. La semplice aggiunta di queste righe a vimrcnon funzionerà, poiché i file di sintassi caricati in seguito probabilmente cancellerebbero qualsiasi regola corrente. Utilizzare un autocmd o ~/.vim/after/syntax/python.vim.
muru,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.