質問

EMACSで編集しているファイルの完全なパスを取得する必要があります。

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

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

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

追加した

(defun show-file-name ()
  "Show the full path file name in the minibuffer."
  (interactive)
  (message (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

他のヒント

????????????????????????????????????M-: buffer-file-name??????????????·????????????

?????????????????????C-x C-f???????????????????·???????C-g?minibuff???????????M-: buffer-file-name???????????????????????

?????????????????????????

(defun copy-full-path-to-kill-ring ()
  "copy buffer's full path to kill ring"
  (interactive)
  (when buffer-file-name
    (kill-new (file-truename buffer-file-name))))

???????????????????????????????????????????????????????????????

(define-key minibuffer-local-completion-map "\C-r" 'resolve-sym-link)
(defun resolve-sym-link ()
  "Try to resolve symbolic links into true paths."
  (interactive)
  (beginning-of-line)
  (let* ((file (buffer-substring (point)
                                 (save-excursion (end-of-line) (point))))
         (file-dir (file-name-directory file))
         (file-true-dir (file-truename file-dir))
         (file-name (file-name-nondirectory file)))
    (delete-region (point) (save-excursion (end-of-line) (point)))
    (insert (concat file-true-dir file-name))))
?????????????????????

?????????????( C-C-K ?)???????????????????????????????????????????????????????????????:

(insert (kill-new (concat file-true-dir file-name)))))

??????????????????'kill-new????????

???????????????

M-! pwd

???????????????????????????????? ????????????????????????????????????????????????????????????????? - ???-2??????????????????????

(defun copy-buffer-file-name (event &optional bufName)
  "Copy buffer file name to kill ring.
If no file is associated with buffer just get buffer name.
"
  (interactive "eP")
  (save-selected-window
    (message "bufName: %S" bufName)
    (select-window (posn-window (event-start event)))
    (let ((name (or (unless bufName (buffer-file-name)) (buffer-name))))
      (message "Saved file name \"%s\" in killring." name)
      (kill-new name)
      name)))

(define-key mode-line-buffer-identification-keymap [mode-line mouse-2] 'copy-buffer-file-name)
(define-key mode-line-buffer-identification-keymap [mode-line S-mouse-2] '(lambda (e) (interactive "e") (copy-buffer-file-name e 't)))
C-x C-d?????????M-x list-directory????????????????????????????????????????????????????Enter??????????????????????????????????

  ??????(OS)??????????????????????????????????????????????????????????

????XCLIP(Linux)??????????????????????pbcopy(???)?putclip(Cygwin?)???

????????????????????c?p?????????????????????????????????????????????????????????????????????????????:

(shell-command (format "echo '%s' | c" buffer-file-name))

???Emacs?????????????????????????????????????????????????c????????Linux?(???????????????????)??????3?????????????????????Ctrl-V????????????????????????

C-x C-b????????????????????????(??????)?

C-u C-x C-b???????????????????????

????????

?????
(buffer-name)<(C-x)(C-e)> for the file name to appear in the echo area

(buffer-name)<(C-u)(C-x)(C-e)> would print the location <here>
???·??????????

??????????:

(defun buffer-kill-path ()
  "copy buffer's full path to kill ring"
  (interactive)
  (kill-new (buffer-file-name)))

???????

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top