Установка заполнения клавишей Tab путей в ударе или zsh для сходства tcsh

Я - долгое время tcsh пользователь, но все спокойные дети, кажется, используют или удар или zsh в наше время (то есть, шаблоны завершения для мерзавца или материала доступны для удара и zsh, редко для tcsh).

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

Вот несколько примеров того, что я привык делать в tcsh, который другие делают по-другому:

  • /u<TAB> завершается к /usr/
  • Затем вкладка перечисляет содержание /usr/
  • /usr/li<TAB> завершается к /usr/lib и списки lib/ и libexec/
  • Нажимающая вкладка во второй раз завершается к /usr/lib/
  • Нажимающая вкладка в третий раз перечисляет содержание /usr/lib/

В ударе, неважно, сколько раз я поразил вкладку, она никогда не будет идти мимо /usr/lib, требование, чтобы я ввел наклонную черту, которую я не хочу делать.

В zsh, /usr/li<TAB> сначала завершается к /usr/lib, затем другая вкладка списки lib/ и libexec/, третий раз снабжает вкладками, завершается к /usr/lib/, и весь последующий цикл вкладок между /usr/lib/ и /usr/libexec/. Я понятия не имею, как закончить эту точку. Я просто хочу пойти от /usr/li кому: /usr/lib, затем /usr/lib/, затем перечислите его содержание.

То же идет для Python. В tcsh я ввожу pyt<TAB>, это завершается к python и списки python, python2.5, python2.6, и т.д. затем вторая вкладка соглашается на Python, и добавьте пространство. В ударе это требует, чтобы я ввел пространство, и в zsh это циклически повторяется бесконечно как в первом примере.

Любая справка в приручении этих оболочек значительно ценилась бы. Я действительно не хочу проводить время, настраивая другие аспекты этих оболочек, пока я не решаю проблему выше.

4
задан 05.05.2011, 16:02

0 ответов

Хорошо сделанный при описании Ваших требований точно, но я не уверен, что на самом деле понимаю то, что Вы хотите сделать, если существует неоднозначность, например, после /usr/lib, что Вы ожидаете, что клавиша Tab сделает.

Если я пробую tcsh, после /usr/lib, клавиша Tab только перечисляет lib и libexec. Можно воспроизвести этот эффект в zsh с setopt no_auto_menu, но это может изменить поведение способами, которыми Вам не нравится в других случаях. Если Вы также делаете setopt rec_exact, поведение похоже на то, что Вы описываете: после /usr/li, Вкладка вставляет b, затем другая Вкладка вставляет /, и треть перечисляет завершения в /usr/lib/.

zsh опции завершения документируются при “Завершении” в man zshoptions.

2
ответ дан 07.12.2019, 21:05

Для удара: в Вашем ~/.inputrc поместите:

set show-all-if-unmodified  on
1
ответ дан 07.12.2019, 21:05

Теги

Похожие вопросы