Усеченное начало выравнивания по правому столбцу в организационной таблице


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

Я хочу, чтобы мой организационный стол выглядел так:

|            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
Можно ли это сделать как совет? В общем, я стараюсь избегать прямого изменения существующих библиотек, если это возможно. Особенно те, которые получают частые обновления из исходных источников. РЕДАКТИРОВАТЬ: теперь я вижу, что вы рекомендуете создать копию функции в моем файле инициализации. Я думаю, это лучше, чем прямое изменение.
Ниспио

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

Было бы неплохо, если бы в будущей версии org-modeэта часть была разбита на отдельный defun, чтобы ее можно было легко рекомендовать или заменить. Являются ли org-modeразработчики достаточно открытыми, чтобы получать запросы на подобные вещи?
Ниспио

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