ミニバッファーに現在のファイルのフルパスを表示する機能
質問
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)))
???????
copy-buffer-file-name-as-kill
[0]?????????????????????????????????????????????????????????????????????
[0] http://www.emacswiki.org/emacs/download /buffer-extension.el??