Esiste un "registro di runtime vim"?


130

A volte provo una personalizzazione / comando nel mio vimrc. Tutto sembra corretto, ma non funziona.

È difficile sapere cosa sta succedendo all'avvio di vim e sapere quale comando ha fallito o no, quindi è davvero difficile eseguire il debug di ciò che può causare un problema nel mio vimrc. È un approccio basato su errori di prova, che richiede tempo e in realtà un PITA. Ad esempio, sto riscontrando problemi con il plug-in snipmate in alcuni file e non ho idea di come scoprire il problema.

Esiste un "registro di runtime" all'avvio di vim che indica quali comandi ha eseguito, quali non sono riusciti e quali? Questo mi aiuterebbe molto.

Risposte:


163

l'esecuzione di vim con l'opzione -V [N] farà un registro di runtime piuttosto pesante, qui N è il livello di debug.

vim -V9myVim.log

creerebbe un registro del livello di debug 9 nella directory corrente con il nome del file myVim.log


Mi sono piaciuti entrambi gli approcci di Zyx e te, ma secondo me il tuo approccio è migliore perché è più semplice, solo nel cmd, e posso impostare un percorso per il registro ogni volta che lo eseguo, e non ho bisogno di "gonfiare "mio vimrc. E benvenuti a SO!
Qualcuno usa ancora il tuo MS-DOS l'

2
Vedi anche :h 'verbose'e :h :verbose.
Palec,

MacVim non sembra supportare -Valcuna opzione o alcuna opzione da riga di comando.
emallove,

questo apre un buffer vim vuoto senza un nome file. Quale prossimo?
Geoff Langenderfer,

104

:messages mostra tutti gli avvisi, errori e messaggi informativi che sono comparsi (possibilmente brevemente) nella linea di stato di vim.

:echo errmsg stampa il messaggio di errore più recente.

g<è un'altra caratteristica che pochi conoscono. Da :help g<:

Il g<comando può essere utilizzato per visualizzare l'ultima pagina dell'output del comando precedente. Ciò è particolarmente utile se si digita accidentalmente <Space>al prompt hit-enter.

Ad esempio, provare :!lsquindi annullare il prompt, quindi premere g<.


15

Inserisci questa funzione in .vimrc:

function! ToggleVerbose()
    if !&verbose
        set verbosefile=~/.log/vim/verbose.log
        set verbose=15
    else
        set verbose=0
        set verbosefile=
    endif
endfunction

Quindi crea la directory ~/.log/vime chiama ToggleVerbose()per ottenere il tuo login ~/.log/vim/verbose.log. Si noti che è possibile rilevare l'errore «variabile nidificata troppo in profondità per la visualizzazione» che normalmente non verrà visualizzato solo perché è stato aumentato il livello dettagliato.


2

Non credo che ci sia un registro di runtime di per sé , ma è possibile eseguirlo in modalità debug.
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts


2
Questo sito sembra essere stato violato o qualcosa del genere. Fino a quando non viene risolto, consultare la versione memorizzata nella cache all'indirizzo web.archive.org/web/20090323034339/http://… .
Mu Mind,

Mi è stato vietato il 403
Frank Fang il


1

Questo probabilmente va contro tutto ciò che SO rappresenta, ma ecco cosa faccio: ho appena colpito lo schermo di stampa non appena viene visualizzato l'avvertimento e guardo l'immagine.


Il pulsante Pausa non avrebbe un effetto simile, meno la carta sprecata?
Rook

Fino ad ora non ho mai saputo cosa facesse il tasto Pausa. In ogni caso, non penso che faccia nulla in Linux stackoverflow.com/questions/92802/…
puk

2
FWIW, i terminali * nix sospenderanno l'output su Ctrl-S e riprenderanno su Ctrl-Q.
joeytwiddle,

1

Ho dovuto aggiungere "set nocp" per usare la funzione "ToggleVerbose ()" quando eseguito in root a causa di & verbose

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.