2011-12-25 36 views
13

In gVIM utilizzo il comando echomsg per inviare messaggi di debug dai miei script (a scopo di debug) e il comando messages per visualizzarli. Funziona tutto bene, ma la funzione di messaggistica di vim visualizza tutti i messaggi - da tutti gli script, sistema, notifiche, ecc. È un modo per cancellare l'elenco dei messaggi (manualmente prima di eseguire l'azione che voglio eseguire il debug) in modo da poter vedere facilmente i messaggi dal mio sceneggiatura? O forse un filtro che posso usare per visualizzare solo i miei messaggi?È possibile cancellare la cronologia dei messaggi in gVIM?

+0

Sembra che non ci sia modo di cancellare 'message-history' – kev

+0

Forse dov'è finito il modo di inviare messaggi di debug? – grigoryvp

+1

@EyeofHell Qualcosa come 'comando -nargs = 1 -bar Echo: let g: messages = get (g :, 'messages', []) + []'. Questo metterà i messaggi di debug nella lista 'g: messages' (e lo creerà se necessario). – ZyX

risposta

6

per quanto ne so non è possibile cancellare la cronologia dei messaggi, ma è possibile utilizzare il proprio comando, invece di :echom, ad esempio:

command -nargs=1 -bar Echo :let g:messages=get(g:, 'messages', [])+[<q-args>] 

o, forse meglio,

command -nargs=1 -bar Echo :let g:messages=get(g:, 'messages', [])+[eval(<args>)] | echom <args> 

primo non è valutando la sua argomentazione e quindi non può essere una sostituzione di :echom, la seconda è, ma si noti che mentre con :echom:echom 1 2 e :echom 1.' '.2 produce la stessa uscita, con :Echo prima sarà un errore che ti costringerà a usare il secondo modulo.

Entrambi i comandi inseriscono i messaggi nella variabile g:messages, creando se necessario. Per cancellare la cronologia è sufficiente utilizzare

+1

Per le versioni più recenti di vim, consultare: https://stackoverflow.com/a/36777871/237059 – Stabledog

-1

Questo comando riempie i messaggi vuoti per cancellare la cronologia dei messaggi.

command! MessageClear for n in range(200) | echom "" | endfor

Source

6

come di vim 7.4.1735 si può fare :messages clear per cancellare la cronologia.

+0

che funziona in neovim. Grazie. – arcseldon

Problemi correlati