P: Como posso obter uma org
função de link personalizado para inserir uma descrição automaticamente?
Gostaria de armazenar org
links para arquivos em um dired
buffer, 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-link
codifica os links diretamente dired
para 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-link
com o comportamento padrão interno, ele simplesmente insere o link sem solicitar uma descrição. - Ao chamar
org-insert-link
com minha função personalizada, ele solicita que eu insira uma descrição (que é preenchida corretamente com o nome do arquivo armazenado na:description
propriedade).
Prefiro não ser solicitada a descrição a cada vez e quero org-insert-link
usar o valor :description
que a função personalizada define.
Como posso convencer org-insert-link
a usar o :description
automaticamente sem me solicitar?
link-location
oudefault-description
na funçãoorg-insert-link
ajudam 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.