emacs で、 visiting file のフルパスを kill-ring に追加したい


emacs で、今 visit しているこのファイルのフルパスを kill-ring に追加したくなりました。どうしたらこれは実現できるでしょうか？




ファイル名は `buffer-file-name` に格納されています。  
`kill-ring` に追加、要するに他エディタでいう「コピー」なら `kill-new`  
なので、

[code]

    (defun copy-file-name-to-kill-ring () 
      "Copy buffer file name to kill ring"
      (interactive)
      (kill-new buffer-file-name))
    
[/code]

ファイルに連動しないバッファの場合 `buffer-file-name` が `nil` になってしまって面白くないので

[code]

    (kill-new (or buffer-file-name (buffer-name)))
    
[/code]

とか。

あとは `(define-key global-map ...)` してもいいし  
必要なら `(add-hook 'find-file-hook ...)` してもいいでしょう。




ファイル名は `buffer-file-name` に格納されています。  
`kill-ring` に追加、要するに他エディタでいう「コピー」なら `kill-new`  
なので、

[code]

    (defun copy-file-name-to-kill-ring () 
      "Copy buffer file name to kill ring"
      (interactive)
      (kill-new buffer-file-name))
    
[/code]

ファイルに連動しないバッファの場合 `buffer-file-name` が `nil` になってしまって面白くないので

[code]

    (kill-new (or buffer-file-name (buffer-name)))
    
[/code]

とか。

あとは `(define-key global-map ...)` してもいいし  
必要なら `(add-hook 'find-file-hook ...)` してもいいでしょう。

