Dodałem tę funkcję teraz do Dired + .
Możesz użyć C-y
(polecenie diredp-yank-files
), aby wkleić pliki, których absolutne nazwy skopiowałeś do pierścienia zabijania, do bieżącego katalogu. dired-current-directory
Zwraca „bieżący katalog” : wstawiony podkatalog, w którym znajduje się kursor, lub główny katalog Dired, jeśli kursor nie znajduje się na liście podkatalogów.
C-y
Zamiast przedrostka arg wyświetla monit o podanie katalogu docelowego do wklejenia. Dlatego nie musisz znajdować się w buforze Dired, aby wkleić pliki do katalogu.
Powinieneś skopiować nazwy plików do pierścienia zabijania za pomocą M-0 w
lub M-x diredp-copy-abs-filenames-as-kill
.
W Dired + te polecenia również ustawiają zmienną diredp-last-copied-filenames
na ten sam ciąg nazw plików. C-y
używa wartości tej zmiennej, a nie tego, co aktualnie znajduje się na szczycie pierścienia zabijania. Oznacza to, że nie trzeba wklejać natychmiast po skopiowaniu nazw plików. Oznacza to, że zamiast kopiować nazwy plików do pierścienia zabijania, wystarczy umieścić nazwy w tej zmiennej (np. Programowo).
Podczas używania C-y
pojawi się monit o potwierdzenie ( y
lub n
). Możesz także nacisnąć l
(dla „listy”) po wyświetleniu monitu, aby wyświetlić listę plików, które zostaną wklejone.
Możesz także skopiować zaznaczone pliki z bieżącego bufora Dired i dowolne zaznaczone pliki w oznaczonych podkatalogach, zdefiniowanych rekurencyjnie . Do tego używasz M-0 M-+ M-w
(przedrostek zero z poleceniem diredp-copy-filename-as-kill-recursive
) lub używasz M-x diredp-copy-abs-filenames-as-kill-recursive
.
Zauważ, że dzięki Dired + możesz łatwo mieć bufor Dired, który wyświetla dowolną liczbę plików i katalogów z dowolnego miejsca. Oznacza to, że wymienione wpisy nie muszą znajdować się w tym samym katalogu ani nawet w powiązanych katalogach. Zobacz C-x D F
(polecenie diredp-dired-for-files
), które znajduje się w menu paska menu Dir jako element Dired Files Location Anywhere . Możesz oznaczyć, a następnie wkleić (skopiować) takie dowolne pliki z bufora Dired do dowolnego katalogu.
Aktualizacja 22.04.2019:
Dodałem także możliwość przenoszenia (nie tylko wklejania) plików, których (absolutne) nazwy skopiowałeś do pierścienia zabijania do bieżącego (lub innego) katalogu. Jest to związane z C-w
Dired.
diredp-move-files-named-in-kill-ring
to interaktywna funkcja Lisp w dired+.el
.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Przenieś pliki, których absolutne nazwy skopiowałeś, do bieżącego katalogu.
Z nieujemnym prefiksem arg pojawi się monit o podanie katalogu docelowego.
Z nie dodatnim argumentem przedrostek arg możesz zobaczyć szczegóły dotyczące plików, jeśli klikniesz, l
gdy pojawi się monit o potwierdzenie wklejenia. W przeciwnym razie zobaczysz tylko nazwy plików. Szczegóły, które widzisz, są zdefiniowane przez opcję
diredp-list-file-attributes
.
Powinieneś skopiować listę nazw plików jako ciąg znaków do pierścienia zabijania za pomocą M-0 w
lub M-x diredp-copy-abs-filenames-as-kill
. Te polecenia również ustawiają zmienną diredp-last-copied-filenames
na ten sam ciąg. diredp-move-files-named-in-kill-ring
używa wartości tej zmiennej, a nie tego, co aktualnie znajduje się na szczycie pierścienia zabijania.
Na wezwanie z Lisp:
- Opcjonalny argument
NO-CONFIRM-P
oznacza, że nie pytaj o potwierdzenie przeniesienia.
- Opcjonalny argument
DETAILS
jest przekazywany do diredp-y-or-n-files-p
.
C-w
przenieść / zmienić nazwę pliku zamiast kopiować? Dziękikill-ring
Wydaje mi się, że masz na myśli nazwy plików, które mają na myśli Dired, aby gdzieś przenieść te pliki, np. Z pytaniem, gdzie je przenieść.)C-w
do przenoszenia plików, których nazwy skopiowałeś.Możesz wykonać następujące czynności w waniliowym Dired (nie wymaga biblioteki innej firmy):
Najpierw przejdź do bufora Dired, który zawiera katalog docelowy .
Gdy kursor znajduje się w wierszu nagłówka katalogu, aby wyświetlić listę katalogu docelowego, użyj
w
(poleceniedired-copy-filename-as-kill
). Spowoduje to skopiowanie bezwzględnej nazwy tego katalogu docelowego. (Możesz skopiować nazwę katalogu z dowolnego wiersza nagłówka katalogu Dired-list w ten sam sposób.)Przejdź do bufora Dired, który zawiera listę plików, które chcesz skopiować . Zaznacz te pliki.
Użyj
C
(poleceniedired-do-copy
), aby skopiować zaznaczone pliki . W wierszu poleceń użyćC-y
do wklej (absolutny) nazwę katalogu docelowego . Możesz go po prostu wkleić, nie zawracając sobie głowy usunięciem domyślnego katalogu, który jest wstawiany do minibufora. (Wklejenie po domyślnej nazwie katalogu przyciemnia tę domyślną nazwę - jest ignorowane).Myślę, że jest to tak proste, jak to opisujesz (
C-w
aby skopiować oznaczone nazwy plików, a następnieC-y
w docelowym wykazie Dired), ale kolejność jest odwrotna : najpierw skopiuj nazwę katalogu docelowego, a następnie wklej ją do poleceniaC
(dired-do-copy
) .(
dired-do-copy
sprawdza istniejące pliki o tej samej nazwie w katalogu docelowym itp.)Wskazówka: (Nie jest to konieczne, jeśli używasz Dired + - patrz moja inna odpowiedź tutaj.) Jeśli zamierzasz kopiować (lub przenosić) pliki z wielu katalogów do tego samego katalogu docelowego i możesz robić inne rzeczy z pierścieniem zabijania pomiędzy nimi, aby skopiowana docelowa nazwa katalogu nie mogła już być pierwsza w pierścieniu zabijania, a następnie użyj dodatkowego wyboru, aby wybrać docelową nazwę katalogu. Drugi wybór nie zależy od regionu ani pozycji kursora - możesz go wkleić tyle razy, ile chcesz, niezależnie od zmian w pierścieniu zabijania. Możesz go wkleić za pomocą myszy, ale wygodniej jest go używać
C-M-y
z bibliotekisecond-sel.el
.źródło
Twój pomysł brzmi prosto, być może możesz spróbować go wdrożyć samodzielnie, możesz też skorzystać z poniższych wskazówek, aby rozpocząć, jeśli chcesz.
źródło
Menedżer plików Ranger działa tak, jak to opisujesz, ale jest inspirowany przez vim (a więc skróty klawiszowe vim
yy
do szarpania / kopiowaniap
do wklejania itp.). Emacs ma również implementację Rangera. Spróbuj, może będzie pasować do twoich potrzeb.Dla siebie używam emacs sunrise-commander, który jest podobny do Midnight Commander (mc), ilekroć czuję, że potrzebuję zarządzania plikami z podwójnymi panelami.
Aktualizacja: dired-ranger ma opisaną kopię / wklej. Przynajmniej w dokumentach.
źródło
dired-ranger
iranger
dostępny na MELPA. Masz na myśli który?Sugerowałbym również użyć
dired-ranger
. Oto co mam w swoiminit.el
:źródło
Dired Ranger był dla mnie prawdziwym rozwiązaniem:
Za pomocą tej prostej konfiguracji (zakładając, że używasz
use-package
) możesz osiągnąć typowe zachowanie eksploratora plików zgodnie z opisem.źródło