Ruta actual en Dired o Dired + al portapapeles

18

Digamos que tenemos un búfer Dired abierto en algún directorio. ¿Cómo puedo enviar la ruta del directorio al portapapeles?

Además, ¿cómo puedo hacer lo mismo cuando el cursor Dired está en un archivo específico, sin abrir primero el archivo?

Amelio Vazquez-Reina
fuente

Respuestas:

25

Mueva el cursor a la línea del encabezado del directorio (donde se muestra el directorio, por ejemplo, use M-<), luego presione w. Eso copia el nombre del directorio al anillo de matar. ( wcopia cualquier nombre de archivo de Dired, y también funciona para el encabezado del directorio).

Y si aún no lo ha hecho, personalícelo x-select-enable-clipboarden no nil, para que la selección se copie en el portapapeles.


El comentario de @ Constantine hace un buen punto. En lugar de pasar a la línea de encabezado del directorio para obtener el nombre absoluto, puede usarlo C-0 wen cualquier archivo o línea de directorio. Eso pondrá el nombre absoluto del archivo en el portapapeles. Cuando lo pegue, puede eliminar la parte relativa del nombre del archivo para obtener el nombre absoluto del directorio.

Dibujó
fuente
16
Creo que vale la pena mencionar que C-h k wen un diredbúfer dice "Con un argumento de prefijo cero, use el nombre de archivo absoluto de cada archivo marcado", es decir, "presione C-0 wpara obtener la ruta absoluta".
Constantine
@Constantine: Buen punto. Actualicé la respuesta para mencionar esto.
Dibujó el
55
@Constantine: podría usar "0 w" (es lo mismo que "C-0 w" en un búfer directo)
jfs
En modo directo, use "C-0 w". Esta copia de ruta completa (ruta + nombre de archivo) para matar el anillo.
a_subscriber
1

Me puse x-select-enable-clipbarda tcomo se sugiere, pero no funcionó. Yo uso este código desde aquí: http://blog.binchen.org/posts/copy-file-name-or-full-path-of-file-in-emacs-dired-buffer-into-system-clipboard .html

;; {{ copy the file-name/full-path in dired buffer into clipboard
;; `w` => copy file name
;; `C-u 0 w` => copy full path
(defadvice dired-copy-filename-as-kill (after dired-filename-to-clipboard activate)
  (with-temp-buffer
    (insert (current-kill 0))
    (shell-command-on-region (point-min) (point-max)
                             (cond
                              ((eq system-type 'cygwin) "putclip")
                              ((eq system-type 'darwin) "pbcopy")
                              (t "xsel -ib")
                              )))
  (message "%s => clipboard" (current-kill 0))
  )
chrimuelle
fuente