Gdiff 명령 "E325: 주의"에서 오류 발생
묘사
특정한 파일에서:Gdiff
를 실행할 때 오류가 발생했고 차이가 나타나지 않았습니다.나는vim:debug
명령을 사용하여 오류를 일으킨 줄을 정확하게 추적했다. 바로 이 줄이다. fugitive.vim
:silent exe 'keepalt file '.s:fnameescape(fn)
디버거를 사용할 때 얻을 수 있는 것은 다음과 같습니다....
>step
function <SNR>24_BufReadIndexFile..<SNR>24_ReplaceCmd
line 28: file fugitive:///home/bitc/projects/test/.git//0/foo/bar.txt
>step
Exception thrown: Vim(file):E325: ATTENTION
function <SNR>24_BufReadIndexFile..<SNR>24_ReplaceCmd
line 34: End of function
디버거 없이 :Gdiff
를 실행할 때 이 출력은 전체 출력입니다.Error detected while processing function <SNR>24_BufReadIndexFile..<SNR>24_ReplaceCmd:
line 28:
E325: ATTENTION
이것은 프로젝트의 특정 파일에서만 발생합니다.모든 다른 파일은 :Gdiff
토론 #1
와 함께 사용할 수 있습니다..swp
의 디렉터리에 가짜 :set directory?
파일이 있습니다.도주범이 이 버퍼에 'noswapfile'
토론 #2
를 설치했기 때문에 나는 무슨 일이 일어났는지 확실하지 않다.네 말이 맞다.나는.swp
중 ~/tmp
파일이 하나 있다.내가 그것을 삭제하자 문제가 사라졌다.그것이 어떻게 거기에 도착했는지 모르겠다.토론 #셋
다시 여는 방법을 고려하십시오.다른 Vim 인스턴스에서 열린 파일에서 "Gdiff"같은 파일을 호출하면 이 문제가 발생합니다.
임시설치
shortmessage=A
같은 게 도움이 될 수도 있어요.토론 #4
@blueyed 잘 모르겠어요.Vim의 두 실례에서 파일을 열면 항상:Gdiff
발생하지 않습니까?토론 #5
도 이 문제에 부딪혔고 ~tmp/에도 남은 swp가 하나 있다.이상하다토론 #6
@tpop 네, 두 가지 상황에서 파일을 열 때 이런 상황이 발생하지만 경고는 도주범(다시)에서 온 것 같습니다.이것은 같은 임시 서류를 사용한 도주범과 관련이 있을 수 있다.토론 #7
복제에 대한 정확한 설명을 해 주시겠어요?나는 2개vims에서 파일을 열 때 경고를 받았지만 2:Gdiff
s토론 #8
에서 경고를 받은 적이 없습니다. 다시 한 번 확인해 주셔서 감사합니다!테스트 용례:
1.vim에서 버전 파일 열기
2. 전화 걸기
:Gdiff
3. 다른vim 실례에서 같은 파일을 열기4. 오류 확인
E325: ATTENTION
, 편집하기5. 전화 걸기
:Gdiff
그러나 이와 동시에 나의 행동도 달라졌다.다음과 같은 오류가 발생했습니다.
UpdateLastColumn failed to find bufnr 2 in w:BufKillList UpdateLastColumn failed to find bufnr 2 in w:BufKillList Error detected while processing function
76_BufReadIndexFile.. 76_ReplaceCmd: line 28: E325: ATTENTION Press ENTER or type command to continue
bufkill 플러그인을 옮겼을 때, 도주범의 오류만 남았습니다.
비록 이전에 diff를 열었지만, 지금은 더 이상 열리지 않는다.
오류는 다음과 같습니다.https://github.com/tpope/vim-fugitive/blob/master/plugin/fugitive.vim#L2058
제거
silent
는 아무것도 바뀌지 않습니다.:debug Gdiff
:function <SNR>75_Diff
line 44: if s:buffer().compare_age(commit) < 0
>
function <SNR>75_Diff
line 46: else
>
function <SNR>75_Diff
line 47: execute 'leftabove '.vert.'diffsplit '.s:fnameescape(spec)
"/tmp/vwHBwXp/24" 651L, 18662C
Exception thrown: Vim(file):E325: ATTENTION
Exception made pending: Vim(file):E325: ATTENTION
Exception resumed: Vim(file):E325: ATTENTION
Exception resumed: Vim(file):E325: ATTENTION
function <SNR>75_Diff
line 48: endif
>n
function <SNR>75_Diff
line 51: catch /^fugitive:/
>
function <SNR>75_Diff
line 53: endtry
>n
Exception discarded: Vim(file):E325: ATTENTION
Error detected while processing function <SNR>75_BufReadIndexFile..<SNR>75_ReplaceCm
d:
line 28:
E325: ATTENTION
function <SNR>75_Diff
line 53: End of function
토론 #9
그것은 매우 변하기 쉬우나, 나는 마침내 번식할 수 있었다.'dir'
의 모든 디렉터리를 검사한 후에 문제가 있는 교환 파일이 있는 위치를 찾을 수 없습니다.그러나 어쨌든 간단한 해결 방안은 교환 파일을 닫는 것이다.나는 우리가 이미 하고 있는 줄 알았지만, 그것은 단지 :Gstatus
창문일 뿐이었다.
Reference
이 문제에 관하여(Gdiff 명령 "E325: 주의"에서 오류 발생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-fugitive/issues/202텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)