Frage

Wenn ausführbare Skripte zu schreiben, und deklarative Konfigurationsdateien, die eine gemeinsame Sprache verwenden (z. B. Python), finde ich es oft unerwünscht eine Erweiterung an den Dateinamen hinzuzufügen. Viele Syntax-Hervorhebung Texteditor (zB. Geany) sind anschließend nicht in der Lage, automatisch die Datei des Typs zu bestimmen.

Gibt es eine Standardmethode zum Anzeigen an den Herausgebern die Art der Quelle in der Datei?

War es hilfreich?

Lösung

Typischerweise wird die Shebang-Zeile wird als Fallback verwendet wird.

Zum Beispiel, ein Ruby-Script ohne eine Erweiterung würde beginnen mit:

#!/usr/bin/env ruby

Andere Tipps

Vim

Vim hat ein Konzept namens einer Modeline . Eine Modeline ist eine speziell formatierte Linie entweder withinin den ersten oder letzten 5 Zeilen der Textdatei, die Sie lokale Variablen :setlocal ermöglicht. Zum Beispiel für C:

 /* vi: set filetype=c fileencoding=UTF-8 shiftwidth=4 tabstop=4 expandtab */

oder Ruby:

 # vi: set filetype=ruby fileencoding=UTF-8 shiftwidth=2 tabstop=2 expandtab

Einige weitere Dokumentation .

Emacs

Emacs ein ähnliches Konzept, genannt Dateivariablen .

Datei-Variablen werden entweder am Anfang der Datei angegeben (in der ersten Zeile, oder wenn es eine Shebang-Zeile, dann in den zweiten) in dieser Form:

/* *-* mode: cc c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil *-* */

oder am Ende:

# Local Variables:
# mode: ruby
# coding: utf-8
# c-basic-offset: 2
# tab-width: 2
# indent-tabs-mode: nil
# End:

jEdit

jEdit nennt dies puffer lokalen Eigenschaften . Die haben in den ersten oder letzten 10 Zeilen und sieht wie folgt sitzen:

# :mode=ruby:indentSize=2:tabSize=2:noTabs=true:

jEdit verwendet auch die Shebang-Zeile als Ausweich für Moduserkennung.

Komodo Edit

Es ist ein Plugin namens Komode (pun intended), die fügt mode~~POS=TRUNC Unterstützung Komodo Edit:

# komode: le=unix language=ruby codepage=utf8 tab=2 notabs indent=2

Es versteht auch eine begrenzte Teilmenge von Vim -Modelines.

Andere

Viele andere Editoren auch entweder haben ihre eigenen Varianten dieser oder Unterstützung einer der oben (in der Regel Vim).

Python / Ruby-Codierung

Sowohl Ruby 1.9 und Python erfordern, dass die Codierung für Nicht-ASCII-Quelldateien explizit angegeben werden. Glücklicherweise tun sie dies in einer Weise, die mit beiden Emacs und Vim -Modelines kompatibel ist. (Im Grunde suchen sie nach der Zeichenfolge coding von einem Nicht-Wortzeichen gefolgt, gefolgt von Leerzeichen durch eine gültige Codierung Namen. Sowohl Vims fileencoding= und Emacs' coding: diese Anforderungen erfüllen.)

Modeline Generator

Hier ist ein einfaches Modeline Generator , die -Modelines für Vim, Emacs und jEdit erzeugt.

Dies funktioniert für viele Redakteure, wenn Sie Nicht-Standard-Bauden verwenden:

#!/usr/bin/env python3
# filetype=python
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top