Tronquer le début de la colonne alignée à droite dans la table organisationnelle

10

J'ai une colonne dans une table en mode organisation qui contient des noms de fichiers longs. La partie intéressante du nom de fichier est les derniers caractères plutôt que le premier. Par exemple, étant donné les fichiers ci-dessous:

/data/capture/abcd_spectrum_01292000.dat
/data/capture/abcd_spectrum_02251435.dat
/data/capture/abcd_spectrum_02251847.dat
/data/capture/abcd_spectrum_02251848.dat
/data/capture/abcd_spectrum_02251848.dat
/data/capture/abcd_spectrum_02251849.dat
/data/capture/abcd_spectrum_02251851.dat
/data/capture/abcd_spectrum_02251852.dat
/data/capture/abcd_spectrum_02251852.dat
/data/capture/abcd_spectrum_02270910.dat

Je veux que ma table d'organisation ressemble à ceci:

|            File | TD | FD | MF | Notes:               |
|-----------------+----+----+----+----------------------|
|           <r15> |    |    |    | <l20>                |
| <=_01292000.dat |    |    |    |                      |
| <=_02251435.dat |    |    |    |                      |
| <=_02251847.dat |    |    |    |                      |
| <=_02251848.dat |    |    |    |                      |
| <=_02251848.dat |    |    |    |                      |
| <=_02251849.dat |    |    |    |                      |
| <=_02251851.dat |    |    |    |                      |
| <=_02251852.dat |    |    |    |                      |
| <=_02251852.dat |    |    |    |                      |
| <=_02270910.dat |    |    |    |                      |

Mais à la place, cela ressemble à ceci:

|            File | TD | FD | MF | Notes:               |
|-----------------+----+----+----+----------------------|
|           <r15> |    |    |    | <l20>                |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |
| /data/capture=> |    |    |    |                      |

Est-il possible de tronquer les colonnes alignées à droite vers la gauche, afin que je puisse voir la partie la plus à droite des entrées?

nispio
la source

Réponses:

8

Pour autant que je sache, il n'y a pas de support intégré pour la personnalisation de la troncature des colonnes de table. Cependant, vous pouvez modifier la commande org-table-alignpour obtenir ce que vous voulez:

  1. Trouvez le fichier org-table.el. Il se trouve dans le répertoire de votre org-modeinstallation. Le moyen le plus rapide de l'ouvrir est via M-x find-library RET org-table RET.

  2. Copiez la définition de org-table-aligndans votre .emacsfichier.

  3. Remplacer

    (add-text-properties f1 (length xx) (list 'org-cwidth t) xx)
    (add-text-properties (- f1 2) f1
                   (list 'display org-narrow-column-arrow)
                   xx)))))
    

    avec

    (let (s1 e1 s2 e2 arrow-string)
      (if (and falign1 (equal (downcase falign1) "r"))
          (setq s1 0
                e1 (- (length xx) f1)
                s2 (- (length xx) f1)
                e2 (- (length xx) (- f1 2))
                arrow-string "<=")
        (setq s1 f1
              e1 (length xx)
              s2 (- f1 2)
              e2 f1
              arrow-string org-narrow-column-arrow))
      (add-text-properties s1 e1 (list 'org-cwidth t) xx)
      (add-text-properties s2 e2 (list 'display arrow-string) xx))))))
    

Testé avec la version 8.2.8 de org-mode.

itsjeyd
la source
3
Peut-on le faire comme conseil? En général, j'essaie d'éviter de modifier directement les bibliothèques existantes si possible. Surtout ceux qui reçoivent des mises à jour fréquentes de sources en amont. EDIT: Je vois maintenant que vous recommandez de créer une copie de la fonction dans mon fichier init. Je suppose que c'est mieux que de le modifier directement.
nispio
@nispio "En général, j'essaie d'éviter de modifier directement les bibliothèques existantes si possible." C'est exactement la raison pour laquelle j'ai suggéré de créer une copie de la fonction :) Pour le moment, je ne vois pas comment vous pourriez le faire en utilisant des conseils, car les arguments qui sont pertinents pour déterminer quelle partie d'une cellule à masquer sont calculés à la volée lorsque appeler add-text-propertiesla commande d'origine.
itsjeyd
Ce serait bien si une future version de org-modedivisait cette partie en un defun séparé afin qu'elle puisse plus facilement être conseillée ou remplacée. Les org-modedéveloppeurs sont-ils assez ouverts pour tirer des demandes pour des choses comme ça?
nispio
@nispio Vous n'êtes pas sûr des pull pulls, mais vous pouvez essayer de soumettre une suggestion dans ce sens à la liste de diffusion . EDIT : Il est indiqué ici que vous pouvez également soumettre des correctifs à la liste de diffusion, et cette page décrit la "façon préférée de soumettre des correctifs" à org-mode.
itsjeyd