Поточний шлях у Dired або Dired + до буфера обміну


18

Скажімо, у нас в деяких каталогах відкритий буфер "Подвійний". Як я можу надіслати шлях до буфера обміну?

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

Відповіді:


25

Перемістіть курсор до рядка заголовка каталогу (де показано каталог - наприклад, використання M-<), а потім натисніть w. Це копіює ім'я каталогу в кільце вбивства. ( wкопіює будь-яке ім'я файлу з Dired, він працює і для заголовка каталогу.)

А якщо ви цього ще не зробили, налаштуйте x-select-enable-clipboardна не nil, тому виділення скопіюється у буфер обміну.


@ Коментар Костянтина гарно говорить. Замість того, щоб переходити до рядка заголовка каталогу, щоб отримати абсолютне ім’я, ви можете просто використовувати C-0 wбудь-який файл або рядок каталогу. Це додасть абсолютне ім'я файлу в буфер обміну. Коли ви вставите його, ви можете просто видалити відносну частину імені файлу, щоб отримати абсолютне ім'я каталогу.


16
Я думаю, що варто згадати, що C-h k wв diredбуфері написано: "З нульовим аргументом префікса використовуйте абсолютне ім'я кожного позначеного файлу", тобто "натисніть, C-0 wщоб отримати абсолютний шлях".
Костянтин

@ Константин: Добре. Я оновив відповідь, щоб згадати про це.
Дрю

5
@Constantine: ви можете використовувати "0 w" (це те саме, що і "C-0 w" у введеному буфері)
jfs

У режимі перезарядки використовуйте "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.