Как я могу использовать функции автозаполнения bash и шаблоны фильтров вместе?

Я думаю, вам следует сделать это с помощью бэкпортов, я на самом деле без проблем устанавливаю nvidia-cuda-toolkit 7.5 на debian jessie.

Добавьте платные бэкпорты в свой /etc/apt/sources.list. Для меня (на jessie) я просто поместил это в конец своего файла:

# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

save, apt-get update и, наконец:

apt-get install -t jessie-backports nvidia-cuda-toolkit
1
23.09.2016, 04:26
1 ответ

Вы указали bash использовать встроенный механизм завершения файлов для git, вместо вызова внешней функции завершения, которая понимает синтаксис команды git. Существует только один механизм завершения, а не серия фильтров. Если вам нужна серия фильтров, вам придется ее разработать.

К счастью, скрипт завершения git в 2.7-kLoC поддерживает исключение шаблонов из git add естественным образом: добавьте эти шаблоны в .gitignore.

printf '%s\n' '*.cm[aiox]' '*.cmxa' '*.[ao]' >>.gitignore

Если вы хотите исключить файлы из завершения git add, не добавляя их в список игнорирования git, думаю, вам придётся погрузиться в скрипт завершения git. _git_add вызывает __git_complete_index_file, который вызывает __git_index_files для создания списка файлов-кандидатов, а он в свою очередь вызывает __git_ls_files_helper, который вызывает git ls-files с опциями, которые были переданы из _git_add. Поэтому в _git_add вы можете изменить

    __git_complete_index_file "--others --modified --directory --no-empty-directory"

для добавления некоторых опций, например --exclude=*.cm[aiox] (остерегайтесь проблем с цитированием: подстановочные знаки в конечном итоге вставляются в команду, поэтому -x *.cm[aiox] не будет работать, потому что шаблон будет развернут в текущем каталоге).

0
28.01.2020, 01:11

Теги

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