git-log в eshell - PullRequest
       2

git-log в eshell

11 голосов
/ 20 апреля 2011

Я пытаюсь запустить команды git в eshell.Когда я запускаю:

git log -p

это будет выглядеть так:

git-log in eshell

Обратите внимание, что ^ [[k перед курсором.Клавиша со стрелкой вниз не работает, выдает ошибку «Не найдено».Вы можете видеть это в минибуфере.Единственный способ прокрутить вниз - использовать клавишу RETURN, и это выглядит довольно грязно:

git-log in eshell -- scrolling

Мой $ TERM установлен на eterm, и я тоже пробовал ANSI.Они одинаковые.Кто-нибудь испытывал это раньше?

Спасибо

Редактировать:

У меня есть способ обойти это.Я создал эту функцию:

(defun eshell/git (&rest args)
     (apply 'eshell-exec-visual (cons "git" args)))

Поэтому каждый раз, когда я запускаю команду git, она запускает вывод в буфере * git *.

Если у вас есть другие способы, пожалуйста, дайте мне знать.

Ответы [ 5 ]

4 голосов
/ 20 апреля 2011

Вы можете прокручивать только с помощью RETURN, потому что используется пейджер. Вы можете либо отключить его навсегда, изменив параметр конфигурации git core.pager , либо временно отключить, установив переменную окружения GIT_PAGER в пустую строку. Другой возможный источник проблемы - ^ [secuences, которые используются для переключения цветов. Вы можете отключить их с помощью опции - без цвета для git log command

3 голосов
/ 01 мая 2011

У вас должны быть включены цвета в git, и этот определенный псевдо-терминал не работает в цвете.Попробуйте использовать m-x ansi-term.Он поддерживает цвета и, как правило, больше похож на терминал.

Или вы можете попробовать этот хук:

 (add-hook 'eshell-preoutput-filter-functions
           'ansi-color-filter-apply)

Ссылка от здесь .

3 голосов
/ 27 апреля 2011

Вы пробовали использовать Magit ?Он интегрирует git в ваш обычный рабочий процесс Emacs.Я не могу вам много рассказать об этом, потому что я только начал использовать Emacs, и я все еще пытаюсь изучить основы.Magit кажется действительно хорошим, хотя.Установите magit, откройте файл в своем репо и запустите M-x magit-log-long, который создаст буфер с выводом git log с графиком истории ascii.Я вполне уверен, что вы также можете извлекать старые коммиты из этого буфера, но вы должны прочитать руководство, чтобы быть уверенным.

1 голос
/ 04 сентября 2012

отключить встроенный пейджер в git, установив для него значение cat:

git config --global core.pager cat
0 голосов
/ 19 сентября 2017

Команда vc-print-root-log (C-x v L) печатает красиво отформатированный журнал git в буфере только для чтения, в котором можно искать, просматривать и отображать коммиты.

...