git diff
.Windows 8을 실행 중이고 vim 7.4가 설치되어 있습니다. 편의상 Vim의 설치 디렉토리 ( set VIMDIR=C:\Program Files (x86)\Vim\vim74
)로 설정된 환경 변수 VIMDIR을 만들고이 디렉토리를 % PATH %에 추가했습니다.
Vim은 %VIMDIR%\macros\less.bat
호출기로 사용할 수 있는 스크립트 와 함께 제공 되므로 vim 기반 호출기에 출력을 표시 less.bat file.txt
하거나 dir | less.bat
표시합니다. 나는 이것을 정기적으로 사용하고 잘 작동합니다. 나는 또한 Git의 less.exe가 아닌 vim을 git의 호출기로 사용하고 싶습니다. 그러면 실행할 때 실행 git diff
되지만 문제가 발생합니다.
less.bat
배치 파일을 사용해 보았습니다.내가 설정 한 경우 %GIT_PAGER%
에 %VIMDIR%\macros\less.bat
과를 할 git diff
, 나는 오류 메시지가 :
C:\Program Files (x86)\Vim\vim74\macros\less.bat: -c: line 0: syntax error near unexpected token `('
C:\Program Files (x86)\Vim\vim74\macros\less.bat: -c: line 0: `C:\Program Files (x86)\Vim\vim74\macros\less.bat'
나는 이것이 git이 MSYS 프로그램이기 때문에 Windows 스타일 C:\whatever
경로를 처리 할 수 없기 때문이라고 생각 합니다.
그래서 그것은 작동하지 않습니다. 다음으로 시도한 것은 해당 파일을 기반으로 검사 less.bat
하고 설정 %GIT_PAGER%
하는 것이 었습니다. 이 파일에는 vim이 stdin에서 읽도록 지시하는 다음 줄이 있습니다.
vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
%GIT_PAGER%
MSYS 스타일 경로를 사용하는 수정 된 버전으로 설정 했습니다.
set GIT_PAGER="/c/Program Files (x86)/Vim/vim74/vim.exe" --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
그것은 성공적으로 vim을 시작합니다! 그러나 여전히 문제가 있습니다. 색상이 작동하지 않고 화면 전체에 이스케이프 문자가 산재 해 있습니다. 일반적으로 구문 강조는 잘 작동합니다. 이 명령을 실행하면 색상으로 생성 한 diff 파일이 표시됩니다.
git diff > test.diff
less.bat test.diff
그러나 단순히 전화를 걸어 콘솔에 diff를 표시하는 git diff
데 사용 %GIT_PAGER%
하면 다음과 같이 표시됩니다.
다른 무엇을 시도해야할지 모르겠습니다. Windows에서 git diff를보기 위해 vim을 사용하는 다른 사람이 있습니까? 어떻게 지내세요?
도움을 주셔서 감사합니다.
나머지 문제는 git diff
여전히 색상 (ANSI 이스케이프 시퀀스)으로 diff 출력을 강조 표시하고 페이저 (예 : Vim)가 올바르게 표시 할 것으로 기대한다는 것입니다. 그러나 Vim에는 자체 구문 강조 표시 (diff에도 해당)가 있으며 시퀀스를 이해하지 못하기 때문에 추악한 것으로 표시됩니다 ^[[m
. 두 가지 옵션이 있습니다.
Git의 diff 강조 표시를 비활성화합니다 (명령 줄 인수 --no-color
이지만를 통해 구성 해제 할 수도 있음 git config
). 이제 Vim이 올바른 파일 유형을 사용하는지 확인해야합니다 ( :set filetype=diff
; 명령 줄에서를 통해 전달할 수 있음 -c {cmd}
).
Vim이 ANSI 이스케이프 시퀀스를 이해하고 강조하도록하십시오. AnsiEsc.vim 플러그인은 이 작업을 수행 할 수 있습니다.
첫 번째 접근 방식을 권장합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다