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?

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.


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))
  )
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.