Kann ich in Gedit eine Standardsyntax-Hervorhebung festlegen?

24

Bis Sie ein Dokument in gedit speichern, ist die Syntaxhervorhebung deaktiviert. Es gibt offensichtlich gute Gründe dafür - Menschen könnten verwirrt sein, wenn bestimmte Wörter zufällig in verschiedenen Farben auftauchen. Für meine Zwecke verwende ich gedit jedoch fast ausschließlich zur HTML-Bearbeitung.

Oft füge ich Code-Schnipsel in ein neues gedit-Dokument ein, um sie schnell zu bearbeiten, und ich muss die Syntaxfarbe manuell auf HTML setzen. In anderen Fällen öffne ich ColdFusion-Dokumente (.cfm), die gedit anscheinend nicht erkennt, und muss die Farbe erneut manuell auf HTML einstellen. Beide Unannehmlichkeiten wären behoben, wenn ich gedit anweisen könnte, die HTML-Syntaxhervorhebung automatisch für neue Dokumente und Dokumente ohne erkannte Dateierweiterung zu verwenden. Ist das möglich?

Michael Martin-Smucker
quelle
Ich habe mich auch gefragt, ob ich zwischen verschiedenen Sprachen wechseln kann, ohne die Datei speichern zu müssen, genau wie in SciTE. Würde mir Zeit sparen.
nickguletskii

Antworten:

21

Sie können zumindest add Dateierweiterungen in der HTML - Syntax Farbschema und bearbeite html.langin /usr/share/gtksourceview-2.0/language-specs/als Super User. Angenommen, Sie möchten cfm-Dateien HTML-Syntax-Hervorhebungen hinzufügen, dann würden Sie dies ändern

<property name="globs">*.html;*.htm</property>

(Standard html.lang) in diese

<property name="globs">*.html;*.htm;*.cfm</property>

jdup
quelle
Vielen Dank! Dies hat dazu beigetragen, dass gedit meinen ColdFusion-Dateien Syntaxfarben hinzufügt.
Michael Martin-Smucker
2
Ich wünschte, ich könnte dieser Antwort ein paar zusätzliche Stimmen hinzufügen. Ich habe diese Antwort gerade noch einmal verwendet, um CSS-Hervorhebungen für LESS- und SASS-Dateien vorzunehmen.
Michael Martin-Smucker
1
Ich mag die Idee, das .langim Benutzerverzeichnis befindliche selbst zu duplizieren und zu bearbeiten
jozxyqk
1
@michaelms Ich habe dem Beitrag und Ihrem Kommentar eine Aufwertung hinzugefügt, da ich meinen WENIGER-Dateien in gedit auch CSS-Syntax-Hervorhebungen hinzugefügt habe, indem ich sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang bearbeitet und * hinzugefügt habe. weniger und * .sass auf die Globs-Eigenschaft: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Link Swanson
Möglicherweise müssen Sie den Pfad für verschiedene Versionen von gtksourceview ändern. Sie können die Datei auch in Ihren Profilordner kopieren, um zu verhindern, dass sie überschrieben wird. Siehe 5chdns Antwort unten ( askubuntu.com/a/310553/37574 )
Mwfearnley
14

Sie können Ihre eigenen Sprachdefinitionsdateien in Ihrem $HOMEVerzeichnis erstellen . Das Bearbeiten der gtk-Sprachspezifikationen wird nicht empfohlen, da diese bei jedem gtksourceview-Update überschrieben werden.

Kopieren Sie Ihre Sprachspezifikationsdatei in Ihr Ausgangsverzeichnis:

$ cp /usr/share/gtksourceview-3.0/language-specs/html.lang ~/.local/share/gtksourceview-3.0/language-specs/

Fügen Sie anschließend Ihre benutzerdefinierten Dateiformate wie folgt .cfmzur Liste der Erweiterungen hinzu:

<property name="globs">*.html;*.htm;*.cfm</property>

Auf diese Weise geditwird die automatische Syntaxhervorhebung für Ihre benutzerdefinierten Dateiformate verwendet, und GTK-Updates setzen Ihre benutzerdefinierten Änderungen nicht außer Kraft.

Afr
quelle
1
Dies ist eine bessere Option als die ausgewählte Antwort. Wenn möglich, Änderungen lokal anwenden.
nightcod3r
Aber wie erkennt gedut die kopierte Datei in $ HOME? Wie kann ich gedit mitteilen, dass die .lang-Datei in $ HOME untersucht werden muss? Danke im Voraus.
Srikrishnan
8

Dies ist nicht möglich, ohne den Quellcode von Gedit zu ändern oder ein Plugin zu schreiben, um den Standard zu überschreiben. Das Standardsyntax-Hervorhebungsschema ist fest codiert .

ændrük
quelle
Vielen Dank, dass Sie mich in die richtige Richtung weisen. Ich habe den neuesten gedit geklont und angefangen herumzustöbern, bevor mir klar wurde, dass gedit jetzt von gtk + 3 abhängt. Dies kann zu einem viel größeren Durcheinander führen, als ich erwartet hatte. ;-)
Michael Martin-Smucker
Eine weitere Sache: Irgendeine Idee, für welche Werte languagegültig sind? Ich habe in der Quelle nach geditund gesucht gtksourceviewund konnte nichts finden, das wie Sprachnamen aussah (aber meine C-Kenntnisse sind ziemlich nicht vorhanden.)
Michael Martin-Smucker
1
@MichaelMS Ich bin mir nicht sicher, aber wenn Sie vorhaben, etwas in eine Lösung zu investieren, ist es meiner Meinung nach am einfachsten, einen set_languageAufruf in das Beispiel-Python-Plugin zu implantieren . Sie können wahrscheinlich verwenden get_language, um den richtigen Wert für die Hervorhebung von HTML-Quellen zu ermitteln.
ændrük,