Скажем, у нас есть открытый буфер в некотором каталоге. Как я могу отправить путь к каталогу в буфер обмена?
Кроме того, как я могу сделать то же самое, когда Dired курсор находится на определенном файле, не открывая файл в первую очередь?
Скажем, у нас есть открытый буфер в некотором каталоге. Как я могу отправить путь к каталогу в буфер обмена?
Кроме того, как я могу сделать то же самое, когда Dired курсор находится на определенном файле, не открывая файл в первую очередь?
Ответы:
Переместите курсор на строку заголовка каталога (где отображается каталог - например, используйте M-<
), затем нажмите w
. Это копирует имя каталога в список уничтожений. ( w
копирует любое имя файла из Dired, и это также работает для заголовка каталога.)
А если вы еще этого не сделали, настройте его x-select-enable-clipboard
на non- nil
, чтобы выделение было скопировано в буфер обмена.
@ Комментарий Константина делает хорошее замечание. Вместо перехода к строке заголовка каталога, чтобы получить абсолютное имя, вы можете просто использовать C-0 w
любой файл или строку каталога. Это поместит абсолютное имя файла в буфер обмена. Вставив его, вы можете просто удалить относительную часть имени файла, чтобы получить абсолютное имя каталога.
Я поставил 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))
)
C-h k w
вdired
буфере написано «С нулевым префиксом arg, используйте абсолютное имя файла каждого отмеченного файла», то есть «нажмите,C-0 w
чтобы получить абсолютный путь».