direx でパスをコピー
direx は便利ですけどパスをコピーする機能がないようです。でちょっとフラストレーションが溜まってきたので適当にでっち上げてみました。
M-w でカーソルがある位置のファイルパスを kill-ring に入れます。C-j で direx を開く直前のバッファにファイルパスを insert します。
(with-eval-after-load 'direx
(defun my-direx-fullpath-at-current-point ()
"returns a fullpath of current point in direx-mode."
(direx:file-full-name (direx:item-tree (direx:item-at-point))))
(defun my-direx-kill-ring-save-current-path ()
(interactive)
(kill-new (my-direx-fullpath-at-current-point)))
(defun my-direx-insert-current-path ()
(interactive)
(let ((path (my-direx-fullpath-at-current-point)))
(quit-window)
(insert path)))
(define-key direx:direx-mode-map (kbd "M-w") #'my-direx-kill-ring-save-current-path)
(define-key direx:direx-mode-map (kbd "C-j") #'my-direx-insert-current-path))
私のユースケースは必要な時に direx を表示させて必要なくなったらさっと消してしまうので C-j は direx のウィンドウを消しています。が、常時 direx バッファを表示している人にはこれだと困るかもしれませんね。消えたら困る人は挿入先のバッファを得てそっちに insert するコードを書く必要があるでしょう。
ところで direx は GitHub でアーカイブになってしまいました。ディスコンってことでしょうかね…。
Author And Source
この問題について(direx でパスをコピー), 我々は、より多くの情報をここで見つけました https://qiita.com/__hage/items/f6f31c4064d948bd96f8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .