Chemin actuel dans Dired ou Dired + dans le presse-papiers

18

Disons que nous avons un tampon Dired ouvert sur un répertoire. Comment envoyer le chemin du répertoire au presse-papiers?

De plus, comment puis-je faire de même lorsque le curseur Dired se trouve sur un fichier spécifique, sans ouvrir le fichier en premier?

Amelio Vazquez-Reina
la source

Réponses:

25

Déplacez le curseur sur la ligne d'en-tête du répertoire (où le répertoire est affiché - par exemple, utilisez M-<), puis appuyez sur w. Cela copie le nom du répertoire sur le kill ring. ( wcopie n'importe quel nom de fichier de Dired, et cela fonctionne aussi pour l'en-tête du répertoire.)

Et si vous ne l'avez pas déjà fait, personnalisez-le x-select-enable-clipboardsur non nil, de sorte que la sélection est copiée dans le presse-papiers.


@ Le commentaire de Constantine fait un bon point. Au lieu de passer à la ligne d'en-tête du répertoire pour obtenir le nom absolu, vous pouvez simplement l'utiliser C-0 wsur n'importe quel fichier ou ligne de répertoire. Cela mettra le nom de fichier absolu dans le presse-papiers. Lorsque vous le collez, vous pouvez simplement supprimer la partie relative du nom de fichier, pour obtenir le nom de répertoire absolu.

A dessiné
la source
16
Je pense qu'il vaut la peine de mentionner que le C-h k wdans un diredtampon dit "Avec un argument de préfixe zéro, utilisez le nom de fichier absolu de chaque fichier marqué", c'est-à-dire "appuyez sur C-0 wpour obtenir le chemin absolu".
Constantine
@Constantine: Bon point. J'ai mis à jour la réponse pour le mentionner.
attiré
5
@Constantine: vous pouvez utiliser "0 w" (c'est la même chose que "C-0 w" dans un tampon dired)
jfs
En mode Dired, utilisez "C-0 w". Cette copie du chemin complet (chemin + nom de fichier) pour tuer l'anneau.
a_subscriber
1

Je mets x-select-enable-clipbardà tcomme suggéré , mais cela n'a pas fonctionné. J'utilise ce morceau de code d'ici: 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
la source