.vimrc 파일을 vim 소스로 보내지 않는 이유


9

오늘, 나는 .vimrc효과가 없다는 것을 알았 습니다. 몇 시간 전에 괜찮 았습니다.

내가 함께 정력 출시했을 때 $vim --plugin, :scriptnames에코 아무것도 : .vimrc파일이 공급되지 않았습니다. (참고 : /etc/vimrc이 문제를 해결하기 위해 제거되었습니다.)

그런 다음 Google을 시도하고 $VIMINIT변수가 의심되었습니다.

값은 다음과 같습니다 $VIMINIT.

$ echo $VIMINIT
set number

Vim 문서 VIMINIT:

 c. Four places are searched for initializations.  The first that exists
    is used, the others are ignored.  The $MYVIMRC environment variable is
    set to the file that was first found, unless $MYVIMRC was already set.
    -  The environment variable VIMINIT (see also |compatible-default|) (*)
       The value of $VIMINIT is used as an Ex command line.
    -  The user vimrc file(s):
                "$HOME/.vimrc"      (for Unix and OS/2) (*)
                "s:.vimrc"          (for Amiga) (*)
                "home:.vimrc"       (for Amiga) (*)
                "$VIM/.vimrc"       (for OS/2 and Amiga) (*)
                "$HOME/_vimrc"      (for MS-DOS and Win32) (*)
                "$VIM/_vimrc"       (for MS-DOS and Win32) (*)
            Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
            "_vimrc" is also tried, in case an MS-DOS compatible file
            system is used.  For MS-DOS and Win32 ".vimrc" is checked
            after "_vimrc", in case long file names are used.
            Note: For MS-DOS and Win32, "$HOME" is checked first.  If no
            "_vimrc" or ".vimrc" is found there, "$VIM" is tried.
            See |$VIM| for when $VIM is not set.
    -  The environment variable EXINIT.
       The value of $EXINIT is used as an Ex command line.
    -  The user exrc file(s).  Same as for the user vimrc file, but with
       "vimrc" replaced by "exrc".  But only one of ".exrc" and "_exrc" is
       used, depending on the system.  And without the (*)!

vim 문서를 완전히 이해할 수 없었습니다. 그것은 것 같다 $VIMINIT5 월 엉망 정력의 시작을.

클리어 $VIMINIT:

$ VIMINIT=
$ echo $VIMINIT

여전히 문제가 존재합니다.


2
"존재하는 첫 번째가 사용되고 나머지는 무시됩니다." 파일 $VIMINIT보다 우선 .vimrc합니다. 그리고 그것은 선착순 규칙을 만족시킵니다. 따라서 그렇습니다 .vimrc.
Sukima

답변:


10

@mMontu의 답변을 확장; Vim은 목록을 찾을 때까지 해당 목록의 순서대로 초기화를 찾습니다. 때문에 $VIMINIT받는 변수 걸릴 전례 .vimrc파일, 그것은 만족 검색 및 그 이후 다른 옵션이 있습니다 무시 .

그래도 작동하지 않는 이유는 다음과 같습니다.

$ VIMINIT=
$ echo $VIMINIT

(1) 환경 변수가 아닌 로컬 변수를 설정하고 있습니까? 익스포트해야합니다 :

$ export VIMINIT=

(2) VIMINIT여전히 정의되어 있기 때문에 여전히 작동하지 않습니다 .

$ printenv | grep VIMINIT
VIMINIT=

필요한 것은 환경에서 함께 제거하는 것입니다.

$ unset VIMINIT
$ printenv | grep VIMINIT || echo "Gone"
Gone

(이러한 명령은 Bash 전용입니다. 필요한 경우 원하는 쉘에 맞게 변경하십시오.)


그러나 이것은 세션에서만 작동합니다. 확실히 설정을 해제하는 것은 어떻습니까? 또는 변수 세트가 어디에 있는지 검색하면 가서 삭제할 수 있습니까?
Feng Yu

8

아마도 설명서를 잘못 이해했을 것입니다.

 c. Four places are searched for initializations.  The first that exists
    is used, the others are ignored.

따라서 VIMINIT를 사용하는 경우 vimrc가로드되지 않습니다.

-  The environment variable VIMINIT (see also |compatible-default|) (*)
   The value of $VIMINIT is used as an Ex command line.

$ VIMINIT를 Ex 명령으로 설정하고 set number있으며 이는 문서에 따라 정상입니다. 그러나 vimrc를 선호한다면 $ VIMINIT를 사용하는 대신set number 해당 파일에 포함 시켜야합니다. 비우기로 설정했는데 vimrc가 아직로드되지 않았지만 실제로 변수를 설정 해제 해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.