Gdiff 명령 "E325: 주의"에서 오류 발생

5428 단어 vim-fugitive

묘사

특정한 파일에서 :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:Gdiffs

토론 #8

에서 경고를 받은 적이 없습니다. 다시 한 번 확인해 주셔서 감사합니다!
테스트 용례:
1.vim에서 버전 파일 열기
2. 전화 걸기:Gdiff3. 다른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 창문일 뿐이었다.

좋은 웹페이지 즐겨찾기