Powiedzmy, że mamy bufor Dired otwarty w jakimś katalogu. Jak mogę wysłać ścieżkę katalogu do schowka?
Jak mogę zrobić to samo, gdy kursor Dired znajduje się w określonym pliku, bez uprzedniego otwarcia pliku?
Powiedzmy, że mamy bufor Dired otwarty w jakimś katalogu. Jak mogę wysłać ścieżkę katalogu do schowka?
Jak mogę zrobić to samo, gdy kursor Dired znajduje się w określonym pliku, bez uprzedniego otwarcia pliku?
Odpowiedzi:
Przesuń kursor do wiersza nagłówka katalogu (gdzie jest pokazany katalog - np. Użyj M-<
), a następnie naciśnij w
. To kopiuje nazwę katalogu do pierścienia zabijania. ( w
kopiuje dowolną nazwę pliku z Dired i działa również z nagłówkiem katalogu).
A jeśli jeszcze tego nie zrobiłeś, dostosuj x-select-enable-clipboard
do non- nil
, więc zaznaczenie zostanie skopiowane do schowka.
Komentarz Konstantyna ma sens. Zamiast przechodzić do wiersza nagłówka katalogu, aby uzyskać bezwzględną nazwę, możesz po prostu użyć C-0 w
dowolnego pliku lub wiersza katalogu. Spowoduje to umieszczenie bezwzględnej nazwy pliku w schowku. Po wklejeniu możesz po prostu usunąć względną część nazwy pliku, aby uzyskać bezwzględną nazwę katalogu.
Ustawić x-select-enable-clipbard
na t
jak sugeruje ale to nie działa. Używam tego fragmentu kodu stąd: 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
wdired
buforze jest napisane: „Z zerowym prefiksem arg używaj bezwzględnej nazwy każdego oznaczonego pliku”, tj. „Naciśnij,C-0 w
aby uzyskać ścieżkę bezwzględną”.