копировать и вставлять различные файлы с помощью dired на emacs при использовании ido.el

Я использую emacs с dired,

(require 'dired-details)
(dired-details-install)

и я делаю,

(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)

(setq ido-use-filename-at-point 'guess)
(setq ido-create-new-buffer 'always)

(а также latestf, как описано здесь)

Однако, когда я нахожусь в dired и копирую (Shift-C) после выбора нескольких файлов и перехожу в новый каталог, куда они должны быть вставлены ... У меня есть два нерабочих варианта: 1) либо я нажимаю на каталог и перейти на следующий уровень в каталог, который мне не нужен. 2) Я нажимаю на файл и ido жалуется

Отмеченная копия: цель должна быть каталогом:

Как я могу заставить dired вставлять выбранные файлы в новое место назначения? Любая помощь приветствуется, спасибо.


person Massagran    schedule 15.04.2011    source источник


Ответы (2)


Попробуйте C-j, как только вы окажетесь в целевом каталоге в ido. Работает для меня.

person Roman Bataev    schedule 10.06.2011

Основная проблема здесь в том, что, хотя есть read-file-name-function, к которому ido может присоединиться, нет read-directory-name-function, ido-mode не имеет явной поддержки этой функции dired, и в вызове read-file-name нет ничего, что я мог бы понять, что ido-mode мог бы зацепиться.

Все, что я могу предложить, это просто выключить ido с помощью C-f. Вызов read-file-name с помощью dired настолько глубок, что было бы даже не особо элегантно патчить:

* read-file-name("Copy <file> to: " "<dir>/" "<dir>/<file>")
  apply(read-file-name ("Copy <file> to: " "<dir>/" "<dir>/<file>"))
  dired-mark-pop-up(nil copy ("<file>") read-file-name "Copy <file> to: " "<dir>/" "<dir>/<file>")
  dired-mark-read-file-name("Copy %s to: " "<dir>/" copy nil ("<file>") "<dir>/<file>")
  dired-do-create-files(copy dired-copy-file "Copy" nil 67 nil nil)
  dired-do-copy(nil)
person Nicholas Riley    schedule 17.04.2011
comment
Спасибо, Николай, за понимание. Думаю, мне просто нужно будет выключить C-f при выполнении этих файловых операций. - person Massagran; 12.05.2011