Обрізати початок правим вирівнюваним стовпцем в таблиці org


10

У мене в стовпці в режимі org є стовпець, який містить довгі імена файлів. Цікава частина імені файлу - це останні кілька символів, а не перші. Наприклад, наведені нижче файли:

/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

Я хочу, щоб мій стіл org виглядав так:

|            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 |    |    |    |                      |

Але натомість це виглядає приблизно так:

|            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=> |    |    |    |                      |

Чи можна змусити стовпці, що вирівнюються праворуч, зрізати ліворуч, щоб я міг бачити більшу частину правих записів?

Відповіді:


8

Наскільки мені відомо, немає вбудованої підтримки для налаштування усікання стовпців таблиць. Однак ви можете змінити команду, org-table-alignщоб досягти бажаного:

  1. Знайдіть файл org-table.el. Він знаходиться в каталозі вашої org-modeустановки. Найшвидший спосіб відкрити це через M-x find-library RET org-table RET.

  2. Скопіюйте визначення у org-table-alignсвій .emacsфайл.

  3. Замініть

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

    з

    (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))))))

Тестовано з використанням версії 8.2.8 org-mode.


3
Чи можна це зробити як пораду? Взагалі я намагаюся уникати прямої модифікації існуючих бібліотек, якщо це можливо. Особливо ті, які отримують часті оновлення з джерел висхідного потоку. EDIT: Тепер я бачу, що ви рекомендуєте створити копію функції у моєму файлі init. Я думаю, що це краще, ніж безпосередньо модифікувати його.
nispio

@nispio "Взагалі я намагаюся уникати прямої модифікації існуючих бібліотек, якщо це можливо". Саме тому я запропонував створити копію функції :) Зараз я не бачу, як би ви це зробили, використовуючи поради, оскільки аргументи, які мають значення для визначення, яку частину комірки ховати, обчислюються під час руху, коли виклик add-text-propertiesв оригінальній команді.
itsjeyd

Було б непогано, якби майбутня версія програми org-modeрозбила цю частину на окремий випуск, щоб її легше було порадити чи замінити. Чи org-modeрозробники досить відкриті для отримання таких запитів?
nispio

@nispio Не впевнений у запитах на притягнення, але ви можете спробувати подати пропозицію в цих рядках до списку розсилки . EDIT : Він говорить тут , що ви також можете подати патчі в список розсилки, і ця сторінка описує «кращий спосіб подачі заплатки» в org-mode.
itsjeyd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.