1. ホーム
  2. emacs

[解決済み] 現在のファイルのフルパスをミニバッファに表示する機能

2022-05-15 11:42:32

質問

emacsで編集中のファイルのフルパスを取得する必要があります。

  • そのための関数はありますか?
  • ない場合、それを得るためのelisp関数は何でしょうか?
  • 結果(パス名)をクリップボードにコピーして、再利用できるようにするにはどうしたらよいでしょうか?

Mac OS XとAqumacsを使用しています。

(setq filepath (get-fullpath-current-file)) ???
(copy-to-clipboard 'filepath) ???

追加

(defun show-file-name ()
  "ミニバッファにフルパスのファイル名を表示します。
  (インタラクティブ)
  (メッセージ (buffer-file-name))
  (kill-new (file-truename buffer-file-name))
)
(global-set-key "\C-cz" 'show-file-name)。

いただいた2つの回答を組み合わせて、私の望むものを手に入れることができました。回答ありがとうございました。あと、いくつか質問です。

  • (file-truename)は何のためにあるのですか?
  • 他のアプリで情報を使用できるように、パス名をキルリングではなく、システム (OS) のクリップボードにコピーすることは可能ですか?

どのように解決するのですか?

それは、組み込みの関数 buffer-file-name で、ファイルのフルパスが得られます。

一番良いのは、emacsのウィンドウに常にシステム名と現在編集中のバッファのフルパスが表示されるようにすることです。

(setq frame-title-format
      (list (format "%s %%S: %%j " (system-name))
        '(buffer-file-name "%f" (dired-directory dired-directory "%b"))))

また、次のようなこともできます。

(defun show-file-name ()
  "Show the full path file name in the minibuffer."
  (interactive)
  (message (buffer-file-name)))

(global-set-key [C-f1] 'show-file-name) ; Or any other key you want