2017-11-24 3 views
0

Ich habe Log-Dateien (sagen wir mit der Erweiterung * .smt2) mit farbigen Log-Einträgen, wobei Farben durch Ansi-Escape-Codes definiert sind. Ich habe das vim-Plugin basierend auf AnsiEsc.vim installiert. Ich bin mir nicht sicher, ob es funktioniert hat, da ich einen Fehler bekommen habe.vim: AnsiEsc - wie Sie sie standardmäßig haben?

Jetzt, wenn ich meinen vim-Editor öffne, muss ich tippen: AnsiEsc. Wie kann ich hinzufügen: AnsiEsc zu meinem .vimrc, um die Standardansicht zu sein? (Bitte sagen Sie mir alle Schritte seit ich neu in Vim bin). Danke.

Antwort

1

Ihr autocmd funktioniert nur für die erste Datei, die als Befehlszeilenargument übergeben wird, da der Befehl :AnsiEsc nur für den aktuellen Puffer gilt. Es wird Dateien übersehen, die über :edit oder :split geöffnet werden. Besser nutzen die BufRead Veranstaltung:

autocmd BufRead * AnsiEsc 

Außerdem frage ich mich, ob Sie nur Vim verwenden, um Dateien anzuzeigen log (das wäre schade)? Der Befehl :AnsiEsc kann die Bearbeitung anderer Dateitypen beeinträchtigen.

Die übliche Lösung dafür ist die Definition eines benutzerdefinierten Dateityps , z.B. log. Anschließend können Sie das Plugin für diese Dateien über das folgende Skript in ~/.vim/ftplugin/log.vim aktivieren:

" Only do this when not done yet for this buffer 
if exists("b:did_ftplugin") 
    finish 
endif 
AnsiEsc 

(Sie müssen auch :filetype plugin on in Ihrem .vimrc haben.)

Um eine Protokolldatei zu öffnen, müssen Sie angeben, der Dateityp: vim "+setf log" logfile oder später in Vim über :setf log. Wenn die Logfile-Namen einem Muster folgen oder eine bestimmte gemeinsame Zeichenfolge enthalten, können Sie sich natürlich auch an eine Dateityp-Erkennung richten; siehe :help new-filetype. Oder Sie schreiben einen Shell-Alias, z. alias vimlog='vim +setf\ log'

+0

Danke für die Antwort. Was ist, wenn die Dateien die spezifische Erweiterung haben, z. B. * .smt2? Ich brauche nur die Dateien mit dieser Erweiterung angezeigt werden mit: AnsiEsc – Sepideha

+1

Das wäre genau der Fall für den zweiten Teil meiner Antwort - ein benutzerdefinierter Dateityp. Um diese Dateien als 'log 'zu erkennen (Sie können das anpassen), setzen Sie' au BufRead, BufNewFile * .smt2 set filetype = log 'in' ~/.vim/ftdetect/log.vim'. Cp. ': help new-filetype' für Details. –

Verwandte Themen