Завершение вкладки терминала [дубликат]

15

Возможное дублирование:
завершение Bash для команд в Mac OS

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

Позвольте мне объяснить на примере - когда я использовал git на Ubuntu, я начну печатать

$ git

и нажмите вкладку, и оболочка выполнит команду или отобразит параметры, доступные для введенной мной буквы. Это то, что происходит на моем Mac (1 уровень). Тем не менее, когда я продолжу набирать следующую часть команды

$ git commit

и нажмите tab, терминал Mac не выполнит следующую подкоманду (для git), как в Linux. То же самое касается других программ, которые поддерживают это многоуровневое завершение команд. Я подозреваю, что это может быть проблема с библиотекой readline, но я не уверен, какую из них мне следует установить.

sa125
источник
Это не проблема readline (на самом деле, это не «проблема»), это потому, что Ubuntu держит вашу руку с пользовательскими пакетами для bash.
Джед Смит
Это определенно проблема конфигурации bash (поскольку я получаю такое поведение на mac + и многое другое, для чего я его настроил, например, завершение имени хоста) Вам следует поискать мощные сценарии для bash и добавить их в свой профиль.
Шейн С. Мейсон

Ответы:

13

Загрузите bash_completion и получите его у себя .bashrc. Затем поместите contrib/completion/git-completion.bashиз дистрибутива git в bash_completion.d.

В качестве альтернативы вы можете установить его через MacPorts .


источник
спасибо, это сработало. Я добавил следующее в мой .bashrc if [-f / opt / local / etc / bash_completion]; затем источник / opt / local / etc / bash_completion fi
sa125
1
Более того, установите его с помощью homebrew: brew install bash-
complete
@abyx: выбор «лучшего» между homebrew и macports - очень субъективная вещь
2

Для git есть опция, доступная при компиляции, для поддержки завершения.

Если вы использовали порт для установки Git (что я рекомендую), вы можете переустановить git с помощью этой команды

sudo port install git-core +svn+bash_completion+doc

Который установит git с завершением bash, поддержкой git-svn и документами

Аурелиен Боттазини
источник