갈고리의 편집 출력을 미리 제출합니다
3775 단어 vim-fugitive
묘사
나는 문제 #19[0]에 대해 초보적인 연구를 진행했지만 이것은 좀 다른 것 같다.나는 거의 몇 줄에서 오류를 표시할 수 있는 미리 제출된 갈고리를 사용해야 한다
자꾸 이래요.그래서 어떤 일이 미리 제출한 갈고리로 인해 실패했을 때, 나는 왜 그런지 모르겠다.
내가 읽을 수 있는 것은 모든 출력의 첫 줄입니다. (실제 오류는 포함되지 않습니다.)
도주범이
messages
을 사용하고 있는 것 같았는데, 내가 검사했을 때, 나는 다시 한 번 한 가지만 보았다줄을 서다.
갈고리가 고장난 모든 출력을 볼 수 있는 방법이 있습니까?
최신 버전의 플러그인(1.2)을 사용했기 때문에 보기로 했습니다.
하지만 나는 여전히 같은 문제를 발견했다.
[0] https://github.com/tpope/vim-fugitive/issues/19
토론 #1
나는 미리 제출한 갈고리를 검사했고 내가 발견하지 못한echo
문장을 모두 삭제했다오류를 보고합니다.
갈고리가 여러 개의
echo
호출을 사용하여 어떤 일을 보고할 때(예를 들어 "Checking foo...pass")도주범은 이것이 잘못이라고 생각한다. (그럴 수 있습니까?)나는
echo
이 특정한근데 케이스 출구번호가 어떻게 돼요?
일단 내가 그것들을 삭제하면, 나는 아무런 문제도 없이 약속을 할 수 있다.
토론 #2
이 콘솔에서GIT_EDITOR=false git commit
을 호출할 때 어떤 종류의 출력을 볼 수 있습니까?토론 #셋
내가 잘못한 것 같지만 GIT_EDITOR=false git commit
이error: There was a problem with the editor 'false'.
Please supply the message using either -m or -F option.
토론 #4
아니, 완전히 옳다. 이것이 바로:Gcommit
이 찾은 것이다.나는 미리 제출한 갈고리가 어떤 방식으로 그것을 씹을 것이라고 생각했다.토론 #5
나는 같은 실수를 얻었다. 나는 갈고리가 전혀 없었다.토론 #6
은 이상하지만 나는:Gcommit
에서만 그것을 얻을 수 있다.:Gstatus
, 그리고 C
.토론 #7
은 898과 900호선을/bin/false
호선이 아닌 false
호선으로 변경했다.나는 이것이 무엇을 의미하는지 확실하지 않다.토론 #8
재미있어요.:!echo $PATH
도 /bin
을 잃어버렸습니까?# 알프레도 데자, 이것도 해결해 줄까?
토론 #9
이상하지 않아요.:echo $PATH
과 :!echo $PATH
은 모두 /bin
이 존재한다는 것을 나타낸다./usr/bin/false
도 기호에 연결되어 있고 /usr/bin
도 경로에 있습니다.which false
은 "/usr/bin/false"를 되돌려주고 정상적인 알림에서 작업합니다.fugitve에서 무슨 일이 일어났는지 실패했어요.
토론 #10
@tpop 이것은 나의 문제를 해결하지 못할 것이다. 왜냐하면 나의 환경에/bin/false
이 존재하지 않기 때문이다.저는 false
을 셸 내장 명령으로 하고 /usr/bin/false
을 가지고 있습니다.:echo $PATH
에 따르면 /bin/
과 /usr/bin/
토론 #11
그렇습니다. 이것이 바로 제가 이런 변화에 맹목적으로 융합하지 않은 이유입니다./usr/bin/false
으로 바꾸면 어떡하지?이것은 무의미하지만 @Johntree도 아무런 보도도 하지 않았습니다.토론 #12
동의합니다.이것들은 모두 의미가 없다.하지만 처음부터 의미가 없었다.왜:Gstatus
과 C
은 일을 할 수 있지만 :Gcommit
을 직접 사용하면 안 됩니까?:Gstatus
10:Gcommit
제출에 성공하더라도 즉시 실패합니다.나는
/usr/bin/false
이 @Alfredeza를 위해 일할 것이라고 생각하지만, 너는 영원히 모른다.그것은 여기서도 작용할 수 있지만, 지금은 또 작용한다. 나는 더 이상 망치고 싶지 않다.토론 #13
나는 내가 문제의 소재를 찾았다고 생각한다.나의 특수한 상황은false
이나 $PATH
에 부족한 것과 무관하다.s:Commit
함수에서 v:shell_error
이 0이 아닌 종료 상태로 평가되면 errorfile
을 읽고 이 줄을 사용하여 필터링합니다.let error = get(errors,-2,get(errors,-1,'!'))
그 중에서 errors
은 오류 파일을 읽은 결과이고 error
은 원시 그룹에서 선별된 문자열이다.다음에 필터된 오류를 몇 개의 정규 표현식과 일치시키려고 시도합니다.만약 그것들이 모두 작용하지 않는다면 오류를 던진다.
call s:throw(error)
나중에 잡혔는데 echoerr
의 하이라이트가 있는데 이것이 바로 내가 본 것이다.그러나 모든 메아리 문장이 필터를 거쳤기 때문에 나는 빈 줄을 얻었다.나는 여기에 어떤 정확한 절차가 있는지 확실하지 않다. (그렇지 않으면 나는 인출 요청을 제출할 것이다.)
errors
을 훑어보고 아무 일도 일어나지 않은 상황에서 보여주는 것이 내 요구에 맞는 것 같다.토론 #14
안녕하세요.나도 같은 문제가 있다.:Gcommit
을 실행할 때 빈 bash 화면만 표시합니다. (연결 출력이 없습니다.)이 갈고리로 도주범을 대처하는 정확한 방법은 무엇입니까?나는 이 일이 마침내 해결되었다고 생각한다.
Reference
이 문제에 관하여(갈고리의 편집 출력을 미리 제출합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-fugitive/issues/95텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)