P: Como posso obter uma orgfunção de link personalizado para inserir uma descrição automaticamente?
Gostaria de armazenar orglinks para arquivos em um diredbuffer, mas preferiria que a descrição do link fosse o nome do arquivo sem o caminho, em vez de informar o caminho completo, ou seja:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Agora: org-store-linkcodifica os links diretamente diredpara fornecer o padrão. Em vez disso, escrevi uma função personalizada (usando a função codificada) e a adicionei a org-store-link-functions:
(defun dired-store-link ()
(when (derived-mode-p 'dired-mode)
(let ((file (dired-get-filename nil t)))
(setf file (if file
(abbreviate-file-name (expand-file-name file))
default-directory))
(org-store-link-props :type "dired"
:link file
:description (file-name-nondirectory file))
file)))
(add-to-list 'org-store-link-functions #'dired-store-link)
Até aí tudo bem, e funciona como esperado, mas por um lado:
- Ao chamar
org-insert-linkcom o comportamento padrão interno, ele simplesmente insere o link sem solicitar uma descrição. - Ao chamar
org-insert-linkcom minha função personalizada, ele solicita que eu insira uma descrição (que é preenchida corretamente com o nome do arquivo armazenado na:descriptionpropriedade).
Prefiro não ser solicitada a descrição a cada vez e quero org-insert-linkusar o valor :descriptionque a função personalizada define.
Como posso convencer org-insert-linka usar o :descriptionautomaticamente sem me solicitar?
link-locationoudefault-descriptionna funçãoorg-insert-linkajudam algum? Se o parâmetro LINK-LOCATION for nulo, esse valor será usado como o local do link em vez de ler um de forma interativa. Se o parâmetro DEFAULT-DESCRIPTION for nulo, esse valor será usado como a descrição padrão.