2

У меня есть учетная запись на общем компьютере, и я не могу получить доступ к /usr /bin, где есть много программ, которые я никогда не использую.

Я бы хотел, чтобы вкладки игнорировали многие из этих программ. Например, я бы хотел, чтобы on<TAB> завершился один oneprog , но есть и другие совпадения.

~> on
on_ac_power           oneprog          onto2vocabularyclass

Есть ли способ скрыть два других совпадения, кроме создания зеркала /usr /bin?

1 ответ1

1

Предполагая Баш...

Вы можете определить свои собственные правила автозаполнения для параметров / аргументов, используя complete . Вы можете определить имена файлов, которые игнорируются в аргументах, экспортируя переменную $FIGNORE .

Однако я не думаю, что вы можете изменить способ, которым Bash разрешает имена программ.

Конечно, вы можете использовать alias программы, которую хотите запустить, так что вам не нужно вводить слишком много текста:

[me@host ~]$ alias on=oneprog
[me@host ~]$ on

Вы могли бы (если вы чувствовали себя глупо) использовать псевдоним встроенной command Bash, использовать команду complete и использовать ее для определения аргументов, которые он примет (ваш список хороших программ), и затем всегда не забывать вводить псевдоним перед вашей реальной командой.

[me@host ~]$ alias run=command
[me@host ~]$ complete -W "ls cd" run
[me@host ~]$ run ls

Смотрите также Как заставить автозаполнение игнорировать конкретное завершение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .