Beim Schreiben ausführbarer Skripte und deklarativer Konfigurationsdateien, die eine gemeinsame Sprache verwenden (zB Python), finde ich es oft nicht wünschenswert, dem Dateinamen eine Erweiterung hinzuzufügen. Viele Syntax-Hervorhebung Texteditor (z. B. Geany) können anschließend nicht automatisch den Dateityp bestimmen.
Gibt es eine Standardmethode, um Editoren den Typ der Quelle in der Datei anzuzeigen?
Vim hat ein Konzept namens modeline . Eine Modeline ist eine speziell formatierte Zeile innerhalb der ersten oder letzten 5 Zeilen der Textdatei, die es Ihnen ermöglicht,% local_% lokale Variablen zu verwenden. Zum Beispiel für C:
%Vor%oder Ruby:
%Vor%Emacs hat ein ähnliches Konzept, das File Variables genannt wird .
Dateivariablen werden entweder am Anfang der Datei (in der ersten Zeile oder wenn es eine Shebang-Zeile gibt, dann in der zweiten) in dieser Form angegeben:
%Vor%oder am Ende:
%Vor%jEdit ruft diese pufferlokalen Eigenschaften auf. Die müssen innerhalb der ersten oder letzten 10 Zeilen sitzen und so aussehen:
%Vor%jEdit verwendet die Shebang-Linie auch als Fallback für die Moduserkennung.
Es gibt ein Plugin namens Komode (Wortspiel beabsichtigt), das Komodo Modelline-Unterstützung hinzufügt Bearbeiten:
%Vor%Es versteht auch eine begrenzte Teilmenge von Vim-Modellen.
Viele andere Editoren haben auch ihre eigenen Varianten oder unterstützen eins der oben genannten (normalerweise Vim).
Sowohl für Ruby 1.9 als auch für Python muss die Codierung für Nicht-ASCII-Quelldateien explizit angegeben werden. Glücklicherweise tun sie das auf eine Weise, die sowohl mit Emacs als auch mit Vim-Modellen kompatibel ist. (Im Grunde suchen sie nach der Zeichenkette :setlocal
gefolgt von einem Nicht-Wort-Zeichen gefolgt von einem Leerzeichen gefolgt von einem gültigen Kodierungsnamen. Sowohl Vim's coding
als auch Emacs ' fileencoding=
erfüllen diese Anforderungen.)
Hier ist ein einfacher Modelliniengenerator , der Modelines für Vim, Emacs und jEdit erzeugt.
Dies funktioniert für viele Editoren, wenn Sie Nicht-Standard-Shebang verwenden:
%Vor%Tags und Links syntax-highlighting programming-languages text-editor file-extension file-type