P: ¿Cómo evito que las org-mode
caras de enlace se deslicen hacia los ...
caracteres de visualización selectiva al final de un encabezado plegado?
Este es un tic visual que me vuelve un poco loco. Cuando, en org-mode
, un enlace es lo último en una línea, la cara del enlace se desborda en la ...
que indica que el encabezado está plegado. Si hay, digamos, un espacio en blanco después del enlace, no hay sangrado.
La captura de pantalla que publiqué demuestra el problema. La línea tres es la línea problemática sin caracteres entre el final del enlace y el final de la línea, mientras que la línea cuatro muestra un enlace, seguido de un espacio:
En primer lugar, ¿por qué sucede esto? En segundo lugar, y más al punto, ¿cómo hago para que pare?
ACTUALIZACIÓN 1: Según los comentarios, publicados a continuación son capturas de pantalla del búfer con los encabezados cerrados y abiertos. Abrí Emacs sin archivo de inicio (es decir, emacs -Q
), require
d org-mode, y abrí este archivo de ejemplo. Entonces: no parece ser algo extraño en mi configuración.
Todos los encabezados cerrados:
Todos los encabezados abiertos:
El tema que había estado usando arriba es inkpot, aunque tengo el mismo problema cuando uso el tema solarizado y el tema predeterminado (como en las nuevas capturas de pantalla).
La versión de Emacs es 24.3.1. Obtengo los mismos resultados cuando uso la versión de organización 7.9.3f (es decir, la que viene con esa versión de Emacs), así como 8.3beta.
ACTUALIZACIÓN 2: aquí hay un ejemplo de trabajo mínimo en respuesta a una solicitud de comentario:
* 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
Respuestas:
Esto parece un error provocado por
org-mode
laorg-activate-bracket-links
función de.Así es como se ve esta función:
Busca una coincidencia para un enlace entre corchetes (por ejemplo
[[target][label]]
, oculta la[[target][
parte agregandoip
a las propiedades de texto, luego vincula lalabel
agregandovp
a las propiedades de texto y finalmente elimina el final]]
agregandoip
nuevamente a las propiedades de texto.Todo esto se ve bien.
org-rear-nonsticky-at
debe cuidar el sangrado de la propiedad.Este comportamiento se desencadena por
(add-text-properties (match-end 3) (match-end 0) ip)
, lo que oculta el final]]
. Solo la'invisible 'org-link
propiedad activa este comportamiento, las otras propiedades parecen ser inocentes.Puede sobrescribir de
org-activate-bracket-links
modo queip
ya no se establezca ,'invisible
pero'display ""
que tiene el mismo efecto:Claramente, este es un truco feo. Pero funciona para mí y podría funcionar para ti. Todavía recomiendo presentar un informe de error.
fuente
[[~/somefile.txt][link label]]
comolink label
(donde las cursivas indican la cara estándar para el enlace), se conviertelink label]]
(sin cambio en la cara). Presentaré un informe de error.org-activate-bracket-links
es reemplazar'invisible non-nil
con'display ""
, por lo que aún debería aplicar la cara del enlace como antes. Ciertamente funciona para mí en Emacs 24.4, pero supongo que la energía está mejor gastado en el informe de error en lugar de tratar de hacer mi trabajo truco ... :)