Gibt es eine Möglichkeit, einen Kommentar in eine Datei einzufügen, die vim verarbeitet, um den Dateityp festzulegen?

30

Wenn ich zum Beispiel möchte, dass eine Datei mit dem Namen gitconfig(ohne führende Zeichen .) von vim als solche erkannt wird filetype=gitconfig, gibt es eine Möglichkeit, dies in einem Kommentar oder ähnlichem in der Datei selbst anzuzeigen? Hinweis: Ich möchte, dass dies systemübergreifend funktioniert. Daher ist es nicht bevorzugt, die Startdateien von vim zu ändern.

Murali Suriar
quelle

Antworten:

45

Das klingt nach der modelineFunktion (siehe Online-Hilfe). In gitconfig könnten Sie eine Modeline wie die folgende am Anfang oder Ende der Datei haben:

# vi: ft=gitconfig

Dies erfordert, dass Modelines aktiviert sind und auf vielen Systemen standardmäßig deaktiviert sind, da sie ein Sicherheitsrisiko darstellen können.

Ein weiterer Ansatz, der möglicherweise etwas mehr Arbeit erfordert, ist das Erstellen einer .vimDatei mit

au BufRead,BufNewFile */gitconfig setfiletype gitconfig

und legen Sie es ~/.vim/ftdetectauf allen Ihren Systemen ab.

jw013
quelle
Perfekt, Modeline ist das, wonach ich gesucht habe. modeline ist aktiviert, aber es sieht so aus, als würde etwas anderes in meinem Setup stören. Wenn ich Ihre vorgeschlagene Zeile oben in die Datei set filetype?einfüge , wird nach dem erneuten Öffnen der Dateityp "conf" angezeigt.
Murali Suriar
Vielleicht kannst du :verbose set filetypedamit sehen, woher der confWert kommt - ich würde vermuten, dass die vim-Standardeinstellungen für den Dateityp irgendwo liegen.
jw013
anscheinend wurde es zuletzt von /usr/share/vim/vim73/filetype.vim gesetzt. Warum würde die Erkennung von Dateitypen auf Systemebene die Direktive überschreiben, die ich in die Datei selbst eingefügt habe?
Murali Suriar
Liefst du vim als root? Wenn ja, würde die Modeline nicht geladen.
Elias
Überprüfen Sie auch den Wert der modelinesOption. :set modelines?Wenn es auf Null gesetzt ist, wird die Modeline nicht verarbeitet.
Christian Long,
1

Sie können eine Syntaxdatei erstellen und in das share/syntaxVerzeichnis von vim stellen (unter Debian Lenny /usr/share/vim/vim71/syntax(Ihre Distribution kann variieren)).

Die Dokumentation zum Syntaxformat von Vim finden Sie hier: http://vimdoc.sourceforge.net/htmldoc/syntax.html

Möglicherweise finden Sie eine fertige Syntaxdatei im Internet, aber das überlasse ich Ihnen als Übung.

Bahamat
quelle