이 문제는 Windows의 설치 프로그램이 작성한 기본 _vimrc 파일로 인해 발생할 수 있습니다. 여전히 기본 파일을 사용하고 있거나 특정 시점에 복사 한 경우 diffexpr
옵션에 지정한 기능을 확인하십시오 . Vim 7.3과 7.4 사이의 패치 중 하나는 Windows의 cmd.exe 셸에 대한 새로운 기본 인용 규칙을 도입했습니다. 이 패치는 패치로 해결 된 것과 동일한 문제를 해결하도록 설계된 MyDiff () 함수의 해결 방법을 위반했습니다.
MyDiff () 함수는 설치 프로그램을 수정하여 버전 7.4.103으로 수정되었습니다. 다음은 _vimrc에 복사하려는 경우 최신 설치 관리자가 생성하는 MyDiff () 함수입니다.
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
if empty(&shellxquote)
let l:shxq_sav = ''
set shellxquote&
endif
let cmd = '"' . $VIMRUNTIME . '\diff"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
if exists('l:shxq_sav')
let &shellxquote=l:shxq_sav
endif
endfunction
:version
또는 :intro
명령을 사용 하거나 시작시 스플래시 화면에서 Vim의 정식 버전을 볼 수 있습니다 .
불행히도 공식 설치 프로그램을 원한다면 8.0까지 기다리거나 야간 빌드를 설치해야합니다 . 그럼에도 불구하고 다른 장소에서 Vim을 설치 하거나 직접 Vim을 구축 할 수 있습니다 .
이 답변이 업데이트되는 경우 스택 오버플로 (보통 두 사이트 모두에서 주제)가 중복됩니다 .