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


15

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

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

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

$ git

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

$ git commit

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


Это не проблема 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 и документами

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.