Текущий путь в Dired или Dired + в буфер обмена


18

Скажем, у нас есть открытый буфер в некотором каталоге. Как я могу отправить путь к каталогу в буфер обмена?

Кроме того, как я могу сделать то же самое, когда Dired курсор находится на определенном файле, не открывая файл в первую очередь?

Ответы:


25

Переместите курсор на строку заголовка каталога (где отображается каталог - например, используйте M-<), затем нажмите w. Это копирует имя каталога в список уничтожений. ( wкопирует любое имя файла из Dired, и это также работает для заголовка каталога.)

А если вы еще этого не сделали, настройте его x-select-enable-clipboardна non- nil, чтобы выделение было скопировано в буфер обмена.


@ Комментарий Константина делает хорошее замечание. Вместо перехода к строке заголовка каталога, чтобы получить абсолютное имя, вы можете просто использовать C-0 wлюбой файл или строку каталога. Это поместит абсолютное имя файла в буфер обмена. Вставив его, вы можете просто удалить относительную часть имени файла, чтобы получить абсолютное имя каталога.


16
Я думаю, что стоит упомянуть, что C-h k wв diredбуфере написано «С нулевым префиксом arg, используйте абсолютное имя файла каждого отмеченного файла», то есть «нажмите, C-0 wчтобы получить абсолютный путь».
Константин

@ Константин: Хорошая мысль. Я обновил ответ, чтобы упомянуть об этом.
Дрю

5
@Constantine: вы можете использовать «0 w» (это то же самое, что «C-0 w» в буфере с
jfs

В режиме Dired используйте «C-0 w». Это копия полного пути (путь + имя файла) для уничтожения кольца.
a_subscriber

1

Я поставил x-select-enable-clipbardна tкак это было предложено , но это не работа. Я использую этот фрагмент кода здесь: 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))
  )
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.