P: Jak uchronić org-mode
twarze linków przed wykrwawieniem się do ...
selektywnych wyświetlanych znaków na końcu złożonego nagłówka?
To wizualne tik, który doprowadza mnie do szału. Kiedy, w org-mode
, link jest ostatnią rzeczą w linii, powierzchnia łącza krwawi do oznaczenia ...
, że nagłówek jest złożony. Jeśli za linkiem jest, powiedzmy, spacja, nie ma krwawienia.
Zrzut ekranu, który opublikowałem, pokazuje problem. Linia trzecia to problematyczna linia bez znaków między końcem linku a końcem linii, natomiast linia czwarta pokazuje link, a po nim spację:
Po pierwsze, dlaczego tak się dzieje? Po drugie, i jeszcze bardziej do rzeczy, jak mogę to zatrzymać?
AKTUALIZACJA 1: Zgodnie z komentarzami zamieszczone poniżej zrzuty ekranu bufora z zamkniętymi i otwartymi nagłówkami. Otworzyłem Emacsa bez pliku inicjującego (tj. emacs -Q
), require
Tryb-org i otworzyłem ten przykładowy plik. Więc: nie wydaje mi się, żeby było to dziwne w mojej konfiguracji.
Wszystkie nagłówki zamknięte:
Wszystkie nagłówki są otwarte:
Motyw, którego użyłem powyżej, to kałamarz, chociaż mam ten sam problem, gdy używam motywu słonecznego, a także motywu domyślnego (jak w nowych zrzutach ekranu).
Wersja Emacsa to 24.3.1. Te same wyniki otrzymuję przy użyciu wersji org 7.9.3f (tj. Tej dołączonej do tej wersji Emacsa), a także wersji 8.3beta.
AKTUALIZACJA 2: oto minimalny działający przykład w odpowiedzi na prośbę o komentarz:
* here's a header with a [[~/somefile.txt][link at the end]]
- This one's a problem
- Interesting note:
+ put the cursor immediately *after* the *d* in "end" with the
header closed/folded
* the face no longer bleeds over into the dots
+ move the cursor anywhere else
* the face bleeds over into the dots again
* here's another [[~/someotherfile.txt][go at it]]
DEADLINE: <2014-10-26 Sun>
- This one's also a problem
* here's another header with a [[~/anotherfile.txt][link followed by a space]]
- No bleed-over onto the dots with this one
Odpowiedzi:
To wygląda jak błąd wywołany przez
org-mode
„sorg-activate-bracket-links
funkcji.Tak wygląda ta funkcja:
Wyszukuje dopasowanie do nawiasów linkowych (np.
[[target][label]]
Ukrywa[[target][
część, dodającip
do właściwości tekstu, następnie łączy linkilabel
, dodającvp
do właściwości tekstu, i na koniec usuwa końcowe]]
, dodającip
ponownie do właściwości tekstu.To wszystko wygląda dobrze.
org-rear-nonsticky-at
powinien zająć się krwawieniem z nieruchomości.To zachowanie jest wywoływane przez
(add-text-properties (match-end 3) (match-end 0) ip)
, co ukrywa końcowe]]
. Tylko'invisible 'org-link
właściwość wyzwala to zachowanie, pozostałe właściwości wydają się niewinne.Możesz nadpisać
org-activate-bracket-links
, abyip
nie ustawiał już,'invisible
ale'display ""
ma ten sam efekt:Oczywiście jest to brzydki hack. Ale to działa dla mnie i może działać dla ciebie. Nadal polecam złożenie raportu o błędzie.
źródło
[[~/somefile.txt][link label]]
jakolink label
(gdzie kursywą wskazuje standardową powierzchnię dla linku), staje sięlink label]]
(bez zmiany twarzy). Złożę raport o błędzie.org-activate-bracket-links
jest zastąpienie'invisible non-nil
go'display ""
, więc nadal powinno ono stosować twarz łącza jak poprzednio. Z pewnością działa dla mnie w Emacs 24.4, ale myślę, że lepiej jest wydawać energię na raport o błędzie, niż próbować zmusić mojego