Wie kann ich vim veranlassen, die Syntax / var / log / messages auf eine Datei mit dem Namen "messages" oder "messages- *" anzuwenden?

16

Ich mag die Kolorierung von vim /var/log/messages, aber das funktioniert nur für diesen - den absoluten Dateinamen. Es funktioniert nicht für ältere Rotationen von Nachrichten (z. B. /var/log/messages-20120610) oder für Nachrichtendateien, die ich von anderen Systemen erhalte. Wie kann ich das optimieren?

rsaw
quelle

Antworten:

29

Wenn Sie die Datei geöffnet haben, können Sie Folgendes ausführen:

:set filetype=messages

Um dies für alle Dateien zu automatisieren, die als Nachrichten bezeichnet werden, geben Sie Folgendes ein ~/.vim/ftdetect/messages.vim:

autocmd BufNewFile,BufReadPost *messages* :set filetype=messages
Thor
quelle
1
BRILLANT! Ich werde "messages *" verwenden, aber genau das wollte ich. Ich liebe es. Ich danke dir sehr.
Rsaw
-1

fügen sie eine zeile herein hinzu ~/.vim/filetype.vim,

au BufNewfile,BufRead messages-* set filetype=messages
Stardiviner
quelle
Vielen Dank für die Antwort von Chris. Hat bei mir nicht funktioniert.
Rsaw
chris, meinen Sie ftdetect.vim?
Stefan Majewsky
1
Nein, ~/.vim/ftdetect/ist ein Verzeichnis, das ~/.vim/filetype.vimalle au BufNewfile,BufRead ... set ft=..in diese Datei einfügen können. einfacher.
Stardiviner
Die Verwendung dieser Datei wird nicht empfohlen. Vim docs sagen: :help new-filetype „... Auf jeden Fall ist es besser , nicht die $ VIMRUNTIME / filetype.vim Datei ändern Es wird überschrieben , wenn eine neue Version von Vim installieren..“
Volker Siegel
1
~/.vim/ist nicht $VIMRUNTIMEauf Systemebene. Wird von neu installiertem Vim nicht überschrieben.
Stardiviner