Зараз я додав цю функцію до Dired + .
Ви можете використовувати C-y(команду diredp-yank-files), щоб вставити файли, абсолютні імена яких ви скопіювали в кільце вбивства, у поточний каталог. Тут dired-current-directoryповертається "поточна директорія" : вставлений підкаталог, де знаходиться курсор, або основний каталог Dired, якщо курсор відсутній у списку субдір.
За допомогою аргументу з префіксом C-yзамість цього буде запропоновано вказати цільовий каталог для пасти. Таким чином, вам не потрібно знаходитись у в'язаному буфері, щоб вставити файли в каталог.
Ви повинні були скопіювати імена файлів у кільце для вбивства за допомогою M-0 wабо M-x diredp-copy-abs-filenames-as-kill.
У команді Dired + ці команди також встановлюють змінну diredp-last-copied-filenamesна ту саму рядок імен файлів. C-yвикористовує значення цієї змінної, не те, що зараз знаходиться на чолі кільця вбивства. Це означає, що вам не потрібно вставляти відразу після копіювання імен файлів. А це означає, що ви могли замість того, щоб копіювати імена файлів у кільце вбивства, просто помістити імена в цю змінну (наприклад, програмно).
Під час використання C-yвам буде запропоновано підтвердити ( yабо n). Ви також можете натиснути l(для "списку") за запитом, щоб відобразити список файлів, які будуть вставлені.
Ви також можете скопіювати позначені файли з поточного буфера Dired та будь-яких позначених файлів у його позначених підкаталогах, визначених рекурсивно . Для цього ви використовуєте M-0 M-+ M-w(нульовий префікс arg з командою diredp-copy-filename-as-kill-recursive) або використовуєте M-x diredp-copy-abs-filenames-as-kill-recursive.
Зауважте, що за допомогою Dired + ви також можете легко створити буфер Dired, який перераховує будь-яку кількість файлів і каталогів з будь-якого місця. Тобто перелічені записи не повинні бути в одному каталозі або навіть у відповідних каталогах. Див. C-x D F(Команда diredp-dired-for-files), що знаходиться в меню панелі " Дір", як пункт " Оброблені файли" . Ви можете помітити та потім вставити (скопіювати) такі довільні файли з буфера, що перебуває в подвійному режимі, до будь-якого каталогу.
Оновлення 2019-04-22:
Я також додав можливість переміщати (не просто вставляти) файли, чиї (абсолютні) імена ви скопіювали в кільце вбивства до поточного (або іншого) каталогу. Це пов'язано з C-wDired.
diredp-move-files-named-in-kill-ring- це інтерактивна функція Lisp в dired+.el.
(diredp-move-files-named-in-kill-ring &optional DIR NO-CONFIRM-P DETAILS)
Перемістіть файли, абсолютні імена яких ви скопіювали, у поточний каталог.
Із негативним аргументом префікса вам запропоновано отримати цільовий каталог.
З непозитивним аргументом префікса ви можете побачити деталі про файли, якщо ви натиснете, lколи буде запропоновано підтвердити вставку. Інакше ви бачите лише імена файлів. Деталі, які ви бачите, визначаються опцією
diredp-list-file-attributes.
Вам слід було скопіювати список імен файлів у вигляді рядка до кільця вбивства за допомогою M-0 wабо M-x diredp-copy-abs-filenames-as-kill. Ці команди також встановлюють змінну diredp-last-copied-filenamesдо тієї ж строки. diredp-move-files-named-in-kill-ringвикористовує значення цієї змінної, не те, що зараз знаходиться на чолі кільця вбивства.
Коли телефонують з Ліспа:
- Необов’язкові
NO-CONFIRM-Pзасоби аргументу не вимагають підтвердження для переміщення.
- Необов’язковий аргумент
DETAILSпередається до diredp-y-or-n-files-p.
C-wпереміщувати / перейменувати файл замість копії ?. Дякую