9

作業中のファイルの現在の完全なファイル名をコピー アンド ペースト バッファに保存して、別のプログラムに切り替えて「C:\some\path\file.txt」などを貼り付ける方法を探しています。

次の方法を試しましたが、実際にはほとんど何もしません。

(defun clip-file ()
  "Put the current file name on the clipboard"
  (interactive)
  (let ((filename (if (equal major-mode 'dired-mode)
                      (file-name-directory default-directory)
                    (buffer-file-name))))
    (when filename
      (x-select-text filename))))

この関数は、外部プログラムのキルリングを保存するために呼び出される関数を含む変数としてCopy-shortcut のヘルプ ファイルに記載されている にx-select-text由来するため、テキストは Emacs から Firefox などにコピー アンド ペーストできます。 .interprogram-cut-functionM-w

私は自分の Windows PC で Emacs を使用しているためx-select-text、Linux の X サーバーと関係があるため、うまくいくかどうかわかりません。

4

3 に答える 3

4

私の質問に記載されているコードは機能します.Emacsを適切に再起動しなかったため、.emacs-fileの構成に問題がありました。

したがって、次を使用します。

(defun clip-file ()
  "Put the current file name on the clipboard"
  (interactive)
  (let ((filename (if (equal major-mode 'dired-mode)
                      (file-name-directory default-directory)
                    (buffer-file-name))))
    (when filename
      (x-select-text filename))))
于 2013-09-15T19:13:42.820 に答える