2011-04-20 4 views
11

나는 eshell에서 git 명령을 실행하려고합니다. 내가 실행하면 :git-in eshell

git log -p 

를 그것은 다음과 같이 표시됩니다

git-log in eshell

공지 사항^[[K 전에 커서를. 아래쪽 화살표 키가 작동하지 않으면 'Not found'라는 오류 메시지가 나타납니다. 미니 버퍼에서 볼 수 있습니다. 아래로 스크롤 할 수있는 유일한 방법은 RETURN 키를 사용하는 것입니다, 그것은 매우 지저분한 같습니다

git-log in eshell -- scrolling

내 $ 용어는 eterm로 설정하고, 나도 ANSI을 시도한다. 그들은 동일합니다. 누구든지 전에 이것을 경험 한 적이 있습니까?

감사

편집 :

나는 주위에이 일을 할 수있는 방법이있다. 이 함수를 만들었습니다.

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

그래서 git 명령을 실행할 때마다 출력이 * git * 버퍼에서 시작됩니다.

다른 방법이있는 경우 알려 주시기 바랍니다.

답변

4

호출기가 사용되므로 RETURN으로 만 스크롤 할 수 있습니다. git의 core.pager config 옵션을 변경하여 영구적으로 비활성화하거나 GIT_PAGER 환경 변수를 빈 문자열로 설정하여 임시로 비활성화 할 수 있습니다. 또 다른 가능한 원인은 다음과 같습니다.^[보안, 색상을 전환하는 데 사용됩니다. 당신은

+1

GIT_PAGER는 훌륭합니다. 이제 \ * eshell *에서 적절한 grep을 할 수 있습니다.- 색이 도움이되지 않는 것 같지만 호출기가 없어서 더 이상 나타나지 않습니다. 감사. – sudo

3

당신이 Magit를 사용하여 시도 가지고 --no-컬러 자식에 대한 옵션 명령을 기록 로 해제 할 수 있습니까? 그것은 일반적인 이맥스 작업 흐름에 자식을 통합합니다. Emacs를 사용하기 시작한 이래로 나는 그것에 대해 많이 말할 수 없으며, 나는 여전히 기본을 배우려고 노력하고있다. Magit는 정말로 멋지다. magit을 설치하고, repo에 파일을 열고, git log의 출력을 가진 버퍼를 생성하는 M-x magit-log-long을 실행하십시오. 나는 그 버퍼에서 오래된 커밋을 체크 아웃 할 수 있다고 확신하지만, 반드시 매뉴얼을 읽어야한다.

+1

magit는 emacs를위한 최고의 자식 패키지입니다 ... 기록을 위해 –

3

git에서 색상이 켜져 있고 특정 유사 터미널이 색상으로 작동하지 않아야합니다. m-x ansi-term을 사용해보세요. 그것은 색상을 지원하며 일반적으로 터미널과 유사합니다.

또는이 훅을 시도 할 수는 :

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

here에서 참조.

+1

도 OP 문제가 있습니다. 내 ansi 색상이 제대로 작동합니다. 문제는 자식이 호출기에 내장되어있어 쉘 모드 및 eshell의 제한된 터미널과 잘 맞지 않습니다. 기능 –

1
cat로 설정하여

비활성화 자식에 내장 된 호출기 :

git config --global core.pager cat 
+1

이것은 eshell과 더 일반적인 쉘에서 git을 사용하면 매우 만족스러운 해결책이 아닙니다. –

0

vc-print-root-log 명령 (CX의 V (L)가)에서 멋지게 형식의 자식 로그를 인쇄하는 읽기 전용 버퍼 당신이 검색 할 수, DIFF 및 디스플레이 커밋.