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?

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.


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))
  )
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.