Fontify defekte Links im org-Modus

8

Wenn ich ein schlechtes [[file:link]]oder ein internes erschaffe [[Link]], das nicht existiert, möchte org-modeich dies mit org-warningface fontieren . Wie kann ich das erledigen?

Vielen Dank,

Adam
quelle

Antworten:

7

In org-9 ist dies für Dateilinks möglicherweise so einfach:

(org-link-set-parameters
 "file"
 :face (lambda (path) (if (file-exists-p path) 'org-link 'org-warning)))

Für interne Links kenne ich keinen einfachen Weg, dies zu tun.

John Kitchin
quelle
Danke John! Das funktioniert super. Gibt es eine Möglichkeit, dies automatisch zu aktualisieren, sodass sich die Farbe ändert, sobald die Datei erstellt wurde?
Adam
Nicht wirklich. Es wird sich beim nächsten Refontifizieren ändern. Wenn Sie die Zeile ändern oder den Puffer neu installieren, sollte sich die Farbe ändern, denke ich.
John Kitchin
Vielen Dank! Gibt es eine Möglichkeit, die Überprüfung auf lokale Dateien zu beschränken? Emacs sollte aus diesem Grund nicht versuchen, eine Verbindung zu Remote-Dateien herzustellen.
Timm
Wie sieht ein Remote-Dateipfad aus? Sie können es wahrscheinlich mit einem regulären Ausdruck in einem bedingten Ausdruck abgleichen.
John Kitchin
1
Es gibt file-remote-p, was den Job zu machen scheint. Ich habe Ihren Code folgendermaßen geändert:(org-link-set-parameters "file" :face (lambda (path) (when (not (file-remote-p path))(if (file-exists-p path) 'org-link 'org-warning))))
Timm