Любой способ заставить ido-find-file переключиться на другой недавно открытый файл, если в текущем каталоге нет совпадений?

Emacs ido очень хорош и делает мою работу более эффективной.

Но я чувствую себя довольно раздраженным, что она всегда берет на себя сменить каталог, когда она думает, что в текущем каталоге нет совпадений для строки, которую я ввожу. Хотя в большинстве случаев я бы надеялся, что она сможет остаться.

Я знаю, что есть некоторые раскладки клавиш для решения этой проблемы: дополнительный C-f вернется в нормальное состояние. find-file mode, и C-j можно использовать, чтобы заставить ido использовать текущий каталог. Но есть ли какие-либо настройки, которые по умолчанию ограничивают ido для текущего каталога?

1 ответ

Решение

Эта функция называется auto-merge, Следующие три параметра относятся к этой функции:

(defcustom ido-auto-merge-work-directories-length 0
  "Automatically switch to merged work directories during file name input.
The value is number of characters to type before switching to merged mode.
If zero, the switch happens when no matches are found in the current directory.
Automatic merging is disabled if the value is negative."
  :type 'integer
  :group 'ido)

(defcustom ido-auto-merge-delay-time 0.70
  "Delay in seconds to wait for more input before doing auto merge."
  :type 'number
  :group 'ido)

(defcustom ido-auto-merge-inhibit-characters-regexp "[][*?~]"
  "Regexp matching characters which should inhibit automatic merging.
When a (partial) file name matches this regexp, merging is inhibited."
  :type 'regexp
  :group 'ido)

Например, вы можете поставить более длительную задержку или отключить эту функцию. Чтобы отключить эту функцию, добавьте следующее .emacs:

(setq ido-auto-merge-work-directories-length -1)

Привязка клавиш Cz также отменяет последний auto-merge, Смотрите следующий фрагмент из ido.el:

(define-key map "\C-z" 'ido-undo-merge-work-directory)
Другие вопросы по тегам