5 Stimmen

Einfärben von Textschnipseln in emacs

Nehmen wir an, ich möchte einige Wörter hervorheben und die Farbe dieser Wörter auf z. B. grün ändern.

Gibt es eine einfache Möglichkeit, dies in emacs zu tun?

Ich danke Ihnen.

3voto

Marc Punkte 769

Das habe ich getan, indem ich font-lock-add-keywords . Ich wollte die Worte hervorheben TODO: , HACK: y FIXME: in meinem Code.

(defface todo-face
'((t ()))
"Face for highlighting comments like TODO: and HACK:")

(set-face-background 'todo-face cyan-name)

;; Add keywords we want highlighted
(defun add-todo-to-current-mode ()
    (font-lock-add-keywords nil
       '(("\\(TODO\\|HACK\\|FIXME\\):" 1 'todo-face prepend))
       t))

3voto

charlie Punkte 41

Das Highlight-Paket hat hlt-highlight-regexp-region y hlt-highlight-regexp-to-end die genau das tun, was Sie wollen.

http://www.emacswiki.org/cgi-bin/wiki/highlight.el

3voto

Drew Punkte 28662

Bibliothek benutzen HighLight . Sie können Overlays oder Texteigenschaften verwenden. Sie können die Hervorhebung dauerhaft speichern oder temporär sein lassen. Sie können auf viele Arten markieren (Regexp, Maus-Ziehen,...). Es gibt viele Möglichkeiten.

1voto

seh Punkte 14708

Verwenden Sie die Funktion font-lock-add-keywords um einen neuen Abgleicher für die betreffende Zeichenfolge zu definieren und diesen Abgleicher mit algunos Gesicht Sie haben definiert die grün angezeigt wird. Zum Beispiel:

(font-lock-add-keywords nil
  '("\\<foo\\>" 0 my-green-face))

Beachten Sie, dass Sie eine bestimmte Modus wo ich schrieb nil und die dazugehörigen Formulare können in sechs verschiedenen Stilen gestaltet werden. Siehe die Dokumentation für die Variable font-lock-keywords für die Regeln und ein paar Beispiele.

1voto

Dmitry Punkte 6430

Wenn Sie sie nur vorübergehend hervorheben wollen, finde ich M-x highlight-regexp ist sehr hilfreich, vor allem, wenn es darum geht, Logdateien zu durchsuchen. Zum Beispiel haben Sie sich eine Logging-Klasse erstellt, die einige Informationen zur Nachverfolgung ausgibt wie MyClass::function() > wenn die Funktion ausgeführt wird und MyClass::function() < wenn es beendet wird (kann manchmal besonders nützlich sein, wenn man Multithreading-Probleme debuggt), dann bittet man emacs einfach, einige davon grün und andere rot zu markieren und dann kann man sehen, wie die Ausführung gelaufen ist.

0 Stimmen

Dies wäre der richtige Weg, anstatt die Einstellungen für die Schriftsperre zu hacken, insbesondere für schnelle und schmutzige vorübergehende Hervorhebungen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X