Truncar o início da coluna alinhada à direita na tabela organizacional

10

Eu tenho uma coluna em uma tabela de modo organizacional que contém nomes de arquivos longos. A parte interessante do nome do arquivo são os últimos caracteres, e não o primeiro. Por exemplo, dados os arquivos abaixo:

/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

Quero que minha tabela organizacional fique assim:

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

Mas, em vez disso, fica assim:

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

É possível tornar as colunas alinhadas à direita truncadas para a esquerda, para que eu possa ver a parte mais à direita das entradas?

nispio
fonte

Respostas:

8

Até onde eu sei, não há suporte interno para personalizar o truncamento de colunas da tabela. No entanto, você pode modificar o comando org-table-alignpara obter o que deseja:

  1. Localize o arquivo org-table.el. Está localizado no diretório da sua org-modeinstalação. A maneira mais rápida de abri-lo é via M-x find-library RET org-table RET.

  2. Copie a definição de org-table-alignpara o seu .emacsarquivo.

  3. Substituir

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

    com

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

Testado usando a versão 8.2.8 de org-mode.

itsjeyd
fonte
3
Isso pode ser feito como um conselho? Em geral, tento evitar modificar diretamente as bibliotecas existentes, se possível. Especialmente aqueles que recebem atualizações frequentes de fontes upstream. EDIT: Vejo agora que você está recomendando a criação de uma cópia da função no meu arquivo init. Eu acho que é melhor do que modificá-lo diretamente.
Nispio 6/10/2014
@nispio "Em geral, tento evitar modificar diretamente as bibliotecas existentes, se possível." Foi exatamente por isso que sugeri a criação de uma cópia da função :) No momento, não vejo como você faria isso usando conselhos, pois os argumentos relevantes para determinar qual parte de uma célula ocultar são calculados imediatamente quando chamando add-text-propertiesno comando original.
itsjeyd
Seria bom se uma versão futura do org-modeseparasse essa peça em um desmembramento separado para que pudesse ser mais facilmente aconselhada ou substituída. Os org-modedesenvolvedores estão bastante abertos para receber solicitações de coisas como esta?
Nispio 6/10/2014
@nispio Não tem certeza sobre solicitações pull, mas você pode tentar enviar uma sugestão ao longo destas linhas para a lista de discussão . EDIT : Diz aqui que você também pode enviar patches para a lista de discussão, e esta página descreve a "maneira preferida de enviar patches" para org-mode.
itsjeyd