색인 파일을 읽을 때 줄 바꿈(Gedit, Gdiff) 추가
6563 단어 vim-fugitive
묘사
적어도 지난 몇 주 동안 나는 기본값인 Gdiff 행동을 사용하여 단계적으로 변경할 때 색인 파일의 끝에 추가 줄 바꾸기 문자가 있다는 것을 알아차렸다. (이것은 최초의 diff에 나타난다.)만약 내가 색인 파일을 저장하지 않는다면, 나는 버퍼를 종료해서 아무런 문제가 생기지 않을 수 있지만, 만약 내가 색인 파일을 저장한다면, 이 추가 줄은 임시 저장 복사본에 추가될 것이다.Ubuntu 11.04의 패치:1-161을 포함하여vim 7.3을 사용하고 있습니다.나는 이미 같은 문제가 ": Gedit: 0"과 같이 발생한다는 것을 검증했다.나는 이미 이런 행위를 추적했다.
s:BufReadIndexFile->s:Replacececemd->call writefile(분할...
writefile 호출은 'b' 인자를 2진법으로 쓰지 않기 때문에 마지막 목록 항목 다음에 줄 바꾸기를 보냅니다.split 호출이keepempty 인자를 사용했기 때문에, 마지막 목록 항목은 실제 인덱스 파일의 마지막 줄 바꾸기 문자 다음에 빈 문자열입니다.이런 조합은 임시 인덱스 파일에 무관한 줄 바꿈 문자가 포함되어 있음을 의미한다.
s:Replace Cmd에서 'b' 인자를 writefile () 에 추가하면 문제가 사라집니다.나는 내가 이미 s:Replace Cmd의 모든 다른 용법이 정확한지 100% 확인한 것은 아니지만, 나는 아직 이상한 점을 보지 못했다.
만약 네가 원한다면, 나는 나의 패치로pull 요청을 만들 것이다. 그러나, 너는 나보다 내가 Replace Cmd에 대한 작은 변동의 결과를 더 잘 알 수 있을 것이다.
좋은 플러그인 고마워요!
토론 #1
나의 유일한 문제는 왜 내가 그것을 복제할 수 없느냐는 것이다.이러한 파일의 마지막 행(:set eol?
에는 기존 UNIX 종료 줄 바꿈이 있습니까?버퍼가 binary
모드에 있습니까?너의 논리가 옳은 것 같다.나는 단지 그것이 왜 나의 현실에 부합되지 않는지 이해하고 싶을 뿐이다.토론 #2
하선이 열리고 2진법이 닫힙니다.나는 아래의 비이실성 테스트 용례에서 같은 증상을 재현했다(같은 구판 ubuntu의vim7.2에서).$ cat > test.c
func()
{
}<CTRL-D>
$ more test.c
func()
{
}
$ cat > emptyrc
<CTRL-D>
$ vim -C -u emptyrc -c "call writefile(split(system('cat test.c'), '\n', 1), 'test.out')" -c q
$ cat test.out
func()
{
}
$ ^^^ extra newline
심상치 않은 플러그인을 찾지 않았음을 확인하기 위해 실행했습니다.$ vim -V -C -u emptyrc -c "call writefile(split(system('cat test.c'), '\n', 1), 'test.out')"
다음은 정보의 출력...Messages maintainer: Bram Moolenaar <[email protected]>
XSMP opening connection
sourcing "emptyrc"
finished sourcing emptyrc
Searching for "plugin/**/*.vim" in "/home/bromls/.vim,/usr/local/share/vim/vimfiles,/usr/local/share/vim/vim73
,/usr/local/share/vim/vimfiles/after,/home/bromls/.vim/after"
Searching for "/home/bromls/.vim/plugin/**/*.vim"
Searching for "/usr/local/share/vim/vimfiles/plugin/**/*.vim"
Searching for "/usr/local/share/vim/vim73/plugin/**/*.vim"
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/getscriptPlugin.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/getscriptPlugin.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/gzip.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/gzip.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/matchparen.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/matchparen.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/netrwPlugin.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/netrwPlugin.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/rrhelper.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/rrhelper.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/spellfile.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/spellfile.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/tarPlugin.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/tarPlugin.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/tohtml.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/tohtml.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/vimballPlugin.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/vimballPlugin.vim
chdir(/usr/local/share/vim/vim73/plugin)
fchdir() to previous dir
sourcing "/usr/local/share/vim/vim73/plugin/zipPlugin.vim"
finished sourcing /usr/local/share/vim/vim73/plugin/zipPlugin.vim
Searching for "/usr/local/share/vim/vimfiles/after/plugin/**/*.vim"
Searching for "/home/bromls/.vim/after/plugin/**/*.vim"
Opening the X display took 0 msec
Opening the X display took 2 msec
XSMP handling save-yourself request
Calling shell to execute: "(cat test.c) >/tmp/vGCueVR/0 2>&1"
이 예에서, 다른 우수한 플러그인 병원체에 감사드립니다. 제 플러그인은 기본vim 검색 경로에 숨겨져 있습니다.한 마디로 하면 저는 vanilla ubuntu가 구축한vim7.2와vanilla vim7.3에서 이런 행위를 소규모 복제할 수 있습니다.
만약 이 식단이 당신에게 다른 작용을 한다면 저에게 알려 주세요.
토론 #셋
당신의 예시적인 행동이 예상과 일치합니다.플러그인으로 돌아가서 이 문제를 격리하려고 했습니다. 처음 호출했을 때 :Gdiff
빈 줄을 보았습니다.빌어먹을 하이센버그.나는 'b'
로고를 추가했는데, 보기에 모든 것이 정상인 것 같다.토론 #4
이 오류를 해결할 수 있을까요?아니면 나의 활력을 조절해서 이 문제를 해결할까?토론 #5
@abonec 최신 소식이 있습니까?문제가 해결된 후에 나는 이 문제를 끝냈다.토론 #6
네,'git pull'이후에도 이 버그는 Gdiff, Gvdiff에 계속 나타납니다(이 경우 오류만 던집니다).Gedit에서 오류를 제거하고 구문 강조표시를 해제합니다(http://dl.dropbox.com/u/11795051/vimrc_fugitive.png )Ubuntu 11.10에 있는vimrc:https://github.com/abonec/dotvim/blob/master/vimrc
토론 #7
내가vim에서 이 저장소를 사용할 때 나는 다음과 같은 것을 알아차렸다.https://github.com/abonec/dotvim수정합니다.gitsubmodule 파일은 문제없습니다.이 파일을 둘러싼 명령은 정확하다.그러나 파일을 변경할 때 "vimrc"명령은 이 파일을 처리할 수 없습니다.
토론 #8
는 분명히 같은 문제가 아니다.무슨 잘못이요?토론 #9
죄송합니다. 제가 방금 구글에서'buf Read Index File'을 검색했는데 검색 결과 1위를 차지했습니다. 저는 그것이 비슷하다고 생각합니다.이 오류:http://img528.imageshack.us/img528/4107/vimrcvimgvim006.png
토론 #10
rm .git/.index.swp
토론 #11
나는 이 서류가 없어토론 #12
너에게.*.swp
서류가 하나 있는데, 그것이 어딘가에 걸려 넘어졌다.오류 메시지의 나머지 부분에서 그것을 언급할 수도 있다.찾아서 삭제합니다.토론 #13
도 검사해 보세요:messages
.토론 #14
find-name*를 실행합니다.swp는 내 pwd에서 두 개의 교환 파일을 찾았습니다. 삭제했지만 문제를 해결할 수 없습니다 (메시지에 이전 화면 캡처에 나타나지 않았습니다.
토론 #15
/tmp
, /var/tmp
또는 다른 임시 디렉터리에 있을 수 있습니다.토론 #16
감사합니다.~/tmp:D에 숨겨진 파일Reference
이 문제에 관하여(색인 파일을 읽을 때 줄 바꿈(Gedit, Gdiff) 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-fugitive/issues/84텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)