Gemäß der akzeptierten Antwort auf diese Frage versuche ich, Modelines in vim zu verwenden, um die Erkennung von Dateitypen in einigen Dateien zu erzwingen.
Beispielsweise habe ich am Anfang einer Datei mit dem Namen gitconfig
(beachten Sie, dass es keine führenden Zeichen gibt .
) die folgende Zeile:
# vim: set filetype=gitconfig :
modeline
ist auf meinem System aktiviert. Allerdings, wenn ich die Datei in vim, öffnen Sie set filetype?
kehrt conf
, anstatt die erwartete gitconfig
.
Ist es möglich, dass andere Teile meiner vim-Konfiguration (z. B. Dateityp.vim) dieses seltsame Verhalten verursachen?
Als Antwort auf Kommentare bearbeitet:
set compatible?
kehrt zurück nocompatible
set modeline?
kehrt zurück modeline
verbose set filetype?
kehrt zurück:
filetype=conf
Last set from /usr/share/vim/vim73/filetype.vim
Ich verstehe nicht, warum das systemweite Dateityp-Plugin das überschreibt, was ich in der Datei selbst festgelegt habe.
Ein letzter Hinweis: Dies ist die mit OSX gelieferte Version von Vim 7.3.
Die neueste Version von MacVim wird auf demselben System ausgeführt und .vimrc
verhält sich erwartungsgemäß mit der set ft?
Rückkehr filetype=gitconfig
.
set modeline?
nicht gedruckt wirdnomodeline
?compatible
ist die eingestellte Ursache . Das wäre auch eine Prüfung wert.Antworten:
Also, nach einiger Graben heraus , dass das System
vimrc
ausgeliefert mit OSX stellt diemodelines
( man beachte die Hinter ‚s‘) Variable auf 0. Diese Variable steuert die Anzahl der Zeilen in einer Datei , die für Set - Befehle überprüft werden. Das Setzen von Modelines auf einen Wert ungleich Null.vimrc
löste das Problem.Volle Ausgabe, für Neugierige: Die Ausgabe von
vim --version
hat mich dazu veranlasst, das System zu überprüfen. Vimrc:Betrachtet man das System vimrc:
Führte mich zu der
modelines
Variablen. Es sieht so aus, als würde MacVim diese Systemdatei nicht als Quelle verwenden (wenn Sie stattdessen nach einem System-GVIMRC suchen,:help startup
ist dies nicht klar).quelle
Damit dies auf meinem macOS-System funktioniert, musste ich einige Einstellungen in ~ / .vimrc vornehmen:
Wobei ' modeline ' die Verwendung von Einstellungen in der Datei aktiviert und ' modelines = # ' die Anzahl der Zeilen festlegt, die vim / vi auf gesetzte Befehle überprüft.
Nachdem diese Parameter festgelegt wurden, konnte ich die Syntax wie in der folgenden Zeile in meinen Dateien verwenden, um die festgelegten Parameter zu überschreiben.
quelle