Q:org
説明を自動的に挿入するカスタムリンク関数を取得するにはどうすればよいですか?
org
ファイルへのリンクをdired
バッファに保存したいのですが、フルパスを報告するのではなく、リンクの説明をパスではなくファイル名にすることをお勧めします。
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Now:org-store-link
リンクをハードコードしdired
てデフォルトを提供します。代わりに、カスタム関数(ハードコードされた関数からのクリビング)を作成し、それをに追加しました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)
これまでのところ良好であり、期待どおりに機能しますが、1つの点で:
org-insert-link
組み込みのデフォルトの動作で呼び出す場合、説明を要求せずにリンクを挿入するだけです。org-insert-link
カスタム関数で呼び出すと、説明を入力するように求められます(説明には、:description
プロパティに保存されているファイル名が正しく入力されます)。
毎回説明を求めorg-insert-link
られるのでは:description
なく、カスタム関数が設定する値を使用したいと思います。
プロンプトを表示せずにを自動的org-insert-link
に使用するようにするにはどうすればよい:description
ですか?
link-location
またはdefault-description
関数内でorg-insert-link
何か助けになりますか? LINK-LOCATIONパラメーターが非nilの場合、この値は、1つを対話的に読み取るのではなく、リンクの場所として使用されます。DEFAULT-DESCRIPTIONパラメータが非nilの場合、この値はデフォルトの説明として使用されます。