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'
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
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. –