Подтвердить что ты не робот

Сделать вкладку вкладки eshell ведут себя как Bash

Как я могу заставить autocomplete eshell вести себя как Bash и Emacs вообще, т.е. он предлагает список вариантов, а не произвольный, выбирает один для вас?

Например, если у меня есть два каталога "Загрузка" и "Загрузка", когда я набираю "Вниз" и нажимаю TAB, я ожидаю, что появится еще один буфер и покажет мне выбор. Но eshell просто завершает его для меня, т.е. Если я нажимаю TAB, он заканчивается "Download"; снова нажмите TAB, он изменится на "Загрузки".

4b9b3361

Ответ 1

Используйте это:

(add-hook
 'eshell-mode-hook
 (lambda ()
   (setq pcomplete-cycle-completions nil)))

Ответ 2

(add-hook
 'eshell-mode-hook
 (lambda ()
   (setq pcomplete-cycle-completions nil)))

и

(setq eshell-cmpl-cycle-completions nil)

Оба делают, как вы просите, и покажите буфер, в котором перечислены завершения, когда я запускаю emacs как "emacs -q", чтобы избежать моих собственных настроек. Это с emacs 23.3, вы используете гораздо более старую версию?

Также см. http://www.emacswiki.org/emacs/EshellCompletion, где я впервые пошел, чтобы проверить это.

Действия:

  • Запустите emacs, используя команду "emacs -q" в качестве команды - никаких других аргументов.
  • Перейдите в буфер * scratch *
  • Вставить или ввести один из приведенных выше фрагментов кода
  • Поместите курсор в конец фрагмента и нажмите "C-e", чтобы выполнить код.
  • Запустите eshell
  • тест
  • Если ни один из них не работает, сообщите здесь информацию о своей версии и любые другие важные сведения.

Ответ 3

Вам нужно только следующую строку:

(setq eshell-cmpl-cycle-completions nil)

eshell-mode автоматически устанавливает pcomplete-cycle-completions на значение eshell-cmpl-cycle-completions локально.