현재 diffed되고있는 모든 파일을 확인해야하는 vim 플러그인을 작성 중입니다. 그것은 diff
이 설정된 것입니다. 나는 매뉴얼을 훑어 보았지만 많이 찾을 수 없었다.vim에서 현재 diffed중인 파일 목록을 얻는 방법
이렇게 할 수 있습니까?
이 질문은 실제로 질문 : how-to-detect-the-position-of-window-in-vim과 관련이 있습니다. 그 질문에 나는 윈도우의 위치를 얻으려고했는데, 그래서 diffs 중 어느 것이 올바른 것인지 그리고 하나가 남았는지를 탐지했다. solution 나는 winnr()을 사용했습니다.
그 해결책은 단지 2 개의 창 (차이가있는 것) 만있는 경우에만 작동합니다. 나는 여러개의 윈도우가 vim에서 열려 있더라도 어느 것이 왼쪽이고 어느 것이 옳은가를 결정할 수 있도록 일반화하고 싶다. 이 내가 도착에 diff
그
diff
에 대한 1
여부를 결정 버퍼링 (buffering) 문제
- 저에게 나열된 모든 버퍼이 각각에 대해
- 의 목록을 해결하기 위해
1
사용bufwinnr()
입니다 무슨 생각입니다 그것 창 번호. - 창 번호에서 어느 것이 남았고 어느 것이 옳은지 결정합니다. 왼쪽은 더 작은 윈도우 번호
- 그리고 현재 버퍼의 winnr을 사용하여 현재 버퍼 (
alt-left
`alt-right`가 눌려져 있는지)가 왼쪽 또는 오른쪽인지를 결정합니다.
이제 조각은 1과 2입니다. 1 ls 사용할 수 있지만 출력을 구문 분석해야합니다. 나열된 모든 버퍼 목록을 가져올 수있는 간단한 방법이 있습니까? 그리고 나서 그 버퍼에 대해 diff
이 1인지 아닌지 확인하는 방법이 있습니다.
간단한 해결책에 대한 제안도 환영합니다. 0
에서 bufnr('$')
및 본 bufexists(nr)
버퍼를 사용하여 존재하는지 여부를 확인 가능한 모든 버퍼 번호로