Я - долгое время 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 это циклически повторяется бесконечно как в первом примере.
Любая справка в приручении этих оболочек значительно ценилась бы. Я действительно не хочу проводить время, настраивая другие аспекты этих оболочек, пока я не решаю проблему выше.
Хорошо сделанный при описании Ваших требований точно, но я не уверен, что на самом деле понимаю то, что Вы хотите сделать, если существует неоднозначность, например, после /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
.
Для удара: в Вашем ~/.inputrc
поместите:
set show-all-if-unmodified on