копировать, вставлять различные файлы, используя dired на emacs, используя ido.el - PullRequest
5 голосов
/ 15 апреля 2011

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

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

и ido,

(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)

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 10 июня 2011

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

2 голосов
/ 18 апреля 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)
...