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

#emacs #copy #dired #ido-mode #ido

#emacs #Копировать #dired #ido-режим #ido

Вопрос:

Я использую 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)
  

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

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

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

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

Ответ №1:

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

Ответ №2:

Основная проблема здесь заключается в том, что, хотя есть a, к 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)
  

Комментарии:

1. Спасибо, Николас, за понимание. Я думаю, мне просто нужно нажать C-f для отключения при выполнении этих файловых операций.