#bash #git #shell #terminal
#баш #мерзавец #оболочка #терминал
Вопрос:
git branch
отбрасывает вывод, по-видимому, в vim, а не просто сбрасывает список ветвей прямо в терминал.
Я знаю, что мог бы сделать что-то вроде git config alias.ls '!git branch | cat'
, но это плохо сочетается с аргументами.
Есть ли способ просто отключить перенаправление git на vim?
Fwiw, я использую Oh My ZSH / ZSH; однако я пробовал аналогичные команды в vanilla bash как в iTerm2, так и в Terminal с теми же результатами.
Комментарии:
1. Что стоит
git ls
на первом месте?2. Ах, извините, имел в виду
git branch
3. Если вывод перенаправляется на что- либо , это будет ваш пейджер. Если vim действует как ваш пейджер, это будет либо что-то в вашей конфигурации git, либо ваши переменные среды, которые это настраивают.
4. … таким
git --no-pager branch
образом, f / e будет иметь тот же эффект без| cat
5. ..итак, в качестве отправной точки: что
declare -p PAGER
излучает? Если он говорит, что такой переменной нет, я мог бы перейти кgit config -l | grep pager
(из-за недостатка терпения искать точное использование, чтобы запрашивать только то, что нас волнует).
Ответ №1:
Обычно используемый вами пейджер less
, если не указано иное. Однако, независимо от используемого вами пейджера, вы можете отключить его.
Если вы хотите, чтобы пейджер был отключен для одной команды, выполните git --no-pager branch
(например), но обратите внимание, что --no-pager
он предшествует команде. Это отлично подходит для псевдонимов. Если вы хотите, чтобы пейджер был отключен для всех команд, установите core.pager
значение cat
, и Git не будет вызывать пейджер. Нет способа отключить его только для одной команды, а не для других.
Обратите внимание, что пейджер по умолчанию не вызывается для команд, выходные данные которых не являются TTY, поэтому, если вы пишете сценарий, он автоматически отключается.
Комментарии:
1. Спасибо! Благословляю ваш быстрый ответ 🙂