Я хотел бы, чтобы tcsh'ism я не смог найти: в пустой строке без содержимого я хочу нажать клавишу табуляции и увидеть эквивалент ls. То есть я хочу
$ <tab>
чтобы сделать что-то другое, то, давая мне \ t. Я нашел фантастические ресурсы для выполнения команд, но не для этого базового случая. Любая помощь в этом была бы отличной! Спасибо.
shell
configuration
zsh
kristopolous
источник
источник
Поведение Tabв начале строки контролируется стилем . Однако есть только два поддерживаемых поведения:
insert-tab
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' insert-tab true
zstyle ':completion:*' insert-tab pending[=N]
Если вы просто хотите выполнить команды в этой позиции,
zstyle ':completion:*' insert-tab true
сделаем. Если вы хотите что-то другое, например, перечисление файлов в текущем каталоге, вам нужно изменить_main_complete
.Недавний поток в списке ЗШ-работников обсудили
insert-tab
.источник
_main_complete
является частью кода zsh, который реализует завершение. Он находится вCompletion/Base/Core/_main_complete
исходном дереве, обычно устанавливается в таком месте, как/usr/share/zsh/functions/Completion/Base/_main_complete
.-command-
не приводит к тому, что <Tab> выводит список файлов в текущем каталоге. Все, что вы сделали, это ограничили совпадения, чтобы пропустить имена команд. Но только вещи, которые будут выполнены в этой позиции, перечислены, а не файлы в текущем каталоге (только каталоги и исполняемые файлы в зависимости отautocd
иPATH
).Вот полная реализация автолиста tcsh в zsh, когда вы нажимаете tab на пустой строке
Вот:
Если вы хотите более близко эмулировать tcsh, также добавьте это в ваш .zshrc:
источник
Я написал этот zsh-виджет, который расширяет возможности использования TAB не только в пустой строке, но и во время ввода команды.
Он может быть настроен на добавление «cd» или «./» в тех случаях с глобальной переменной.
export TAB_LIST_FILES_PREFIX
источник