Vim이 새로 설치 한 것처럼 모든 사용자 구성을 무시하도록하려면 어떻게해야합니까?


21

개인 설정의 영향을받지 않도록하기 위해 Vim을 처음 설치하고 사용자가 실행 한 것처럼 사용자가 설치 한 모든 구성 파일 을 무시하는 방식으로 Vim을 시작하려고 합니다. 바로.

이것은 FAQ에서 해결 되었으며 , 다음 명령으로 Vim을 시작하는 것이 좋습니다.

vim -u NONE -U NONE -N -i NONE

이것은 대부분 의 방법을 얻지 만 runtimepath옵션에는 여전히 포함되어 ~/.vim있으며 특히 ~/.vim/after파일 유형 감지를 설정하고 파일 유형을 변경하면 코드 ~/.vim/after/syntax/the_relevant_filetype.vim가 실행됩니다.

시작시 다음 명령을 호출하여이 특정 문제를 해결할 수 있습니다. *

:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after

...하지만 확실하지 않은 경우 :

  1. 이는 강력한 솔루션입니다. 사용자 구성을 적용 할 수있는 유일한 경로입니까? 내가 생각하지 못한 것이 있습니까?
  2. 원하는 결과를 얻는 더 좋은 방법이 있습니다.

* --cmd또는 -u vimrc인수 를 사용 하거나 간단히 수동으로 입력합니다.

편집 : 다음은 내가 고치려고하는 일종의 문제의 특정 예입니다. (아직 발생하지 않았을 수도있는 다른 가능한 문제를 해결하기위한 솔루션을 원하지만)

  1. 내용을 포함하는 ~ / .vim / after / ftplugin / c.vim 파일을 작성하십시오.

    noremap i :echom "This is not default behaviour"<CR>
    

    이제 무시하고 싶은 사용자 설치 구성이 있습니다. FAQ에서 제안한 솔루션을 테스트 해 봅시다.

  2. 다음 명령으로 Vim을 실행하십시오.

    vim -u NONE -U NONE -N -i NONE
    
  3. 다음 명령을 입력하십시오 :

    :filetype plugin on
    :set ft=c
    i
    

원하는 동작 : Vim이 Insert 모드로 들어가야합니다. 이것은 사용자 구성이없는 경우 수행 할 작업입니다.

관찰 된 동작 : Vim이 "이것은 기본 동작이 아닙니다"를 출력합니다


유닉스 계열 시스템에서 수행하는 경우 : HOME=/dev/null vim -u NONE?
muru

@muru 좋은 생각이며 아마도 대답으로 추가 할 가치가 있지만 완벽 하지는 않습니다 . 예를 들어 :cd ~, viminfo파일 의 기본 위치는 $ HOME에 있으며 E138을 유발할 수 있습니다. 비어있는 새 디렉토리를 만들고 $ HOME에 사용하는 것이 가장 좋은 해결책이라고 생각합니다.
Rich

@muru 방금 $ HOME을 설정하면 지정하지 않아도 -u NONE될까요?
Rich

1
어떤 경우에 /tmp더 좋을지 모르지만, 처음 생각했지만 / dev / null을 블랙홀로 선택했습니다. ... 또는 같은 것 HOME=$(mktemp -d) vim ....
muru

사용하지 않으면 시스템 vimrc를 읽지 -u NONE않습니까? 필요한 행동에 따라 다릅니다.
muru

답변:


16

Vim 8.0.1554 (아직도 Neovim은 아님)부터 사용할 수 있습니다 vim --clean. 이 방법을 권장합니다 :help bugs.

:help --clean 문서 :

"-u DEFAULTS -U NONE -i NONE"과 유사 :
-파일 및 환경 변수의 초기화를 건너 뜁니다
. 'runtimepath'및 'packpath'는 홈 디렉토리 항목을 제외하도록 설정됩니다 (-u DEFAULTS에서는 발생하지 않음).
-| defaults.vim | 'nocompatible'을 의미하는 스크립트가로드됩니다. Vim 기본값 사용
-no | gvimrc | 스크립트가로드되었습니다
-viminfo 파일을 읽거나 쓰지 않습니다


1
좋은! 이것은 $HOME변수를 엉망으로 만드는 것보다 훨씬 간단 합니다. Goodjob Vim 개발자. 그리고 답변 주셔서 감사합니다!
Rich

1
--clean또한 neovim마스터에서 작동 하지만 ( github.com/neovim/neovim/commit/… , 0.4.0에 포함) 홈 디렉토리는 제외하지 않습니다.
Christian Clason

(아직이 패치는 포팅 대기 중입니다.)
Christian Clason

11

사용자 별 파일을 제거하는 한 가지 방법은 다른 값을 사용하는 것입니다 $HOME. viminfo와 같이 아무것도 읽거나 쓸 수 없도록하려면 다음을 사용할 수 있습니다 /dev/null.

HOME=/dev/null vim -u NONE

에 대한 오류가 발생 viminfo하므로 대신 임시 폴더를 만들거나 기존 폴더 (예 :)를 사용할 수 있습니다 /tmp.

HOME=$(mktemp -d) vim -u NONE

등으로 $HOME, -u NONE관리자가 시스템 전체에 추가 한 내용에 따라 필요하지 않을 수 있습니다 vimrc. 예를 들어, 내가 관리하는 모든 랩 시스템 에서 , 등을 설정하고 설정 한 /etc/vim/vimrc.local(패키지 Vim의 기본값으로 제공 /etc/vim/vimrc)을 추가했습니다 .nocompatiblesyntaxfiletype on


3
viminfo 로딩을 방지하기 위해 -i NONE 정력 없습니다
기독교 Brabandt

1

나는 그것에 대해 많이 대답 할 수는 없지만 언급하지 않은 한 가지 점은 제목에 무엇이 있는지에 대한 해석에 다시 대답합니다.

Vim이 새로 설치 한 것처럼 모든 사용자 구성을 무시하도록하려면 어떻게해야합니까?

일부는 제안 vim -u NONE 했거나vim -u NORC

그것은 어떤면에서 vimrc 파일이 아닌 것보다 조금 더 베어 본입니다. 'i'를 입력하면 'insert'라고 표시되지 않습니다. 여전히 '삽입'이라고 말하고 싶을 수도 있습니다. vimrc 파일을 비워서 vim을 시작하면 삽입이 표시됩니다.

vim이 기본 설정을 먼저로드하기 때문입니다.

vim을 기본 파일로 지정하여 vimrc 파일이 비게되는 효과를 얻을 수 있습니다. 당신이 있는지 확인 /etc/vim/vimrc하고, 당신이 할 수있는 vim -u /etc/vim/vimrc 또는 OSX에 기본 파일입니다/usr/share/vim/vicmrc


나는 그것이 vim --clean이 당신을 위해 할 것이라고 정확히 생각합니다.
quemeraisc

@quemeraisc가로드 vim --clean됩니다 defaults.vim. 이 답변은 시스템의 vimrc (참고로 언급하고 :help system-vimrc나는 생각합니다.), 하지 에 의해로드 vim --clean.
리치

@barlap : defaults.vim과 혼동을 피하려면 (참조 :help defaults.vim) 이 답변에서 문구 default config를 변경하는 것이 좋습니다 system vimrc. 또는 더 나은 답변으로 두 가지 모두를 토론하십시오!
리치

0

에서 빔 - 자주 묻는 질문 2.5 :

2.5. Vim에 "xyz"(일부) 문제가 있습니다. 설정이나 Vim에 문제가 있는지 어떻게 알 수 있습니까? / Vim에서 버그를 발견 했습니까?

먼저 오류가 실제 런타임 파일에 있는지 또는 Vim과 함께 배포 된 플러그인에 있는지 또는 .vimrc 또는 .gvimrc의 구성 옵션의 단순한 부작용인지 여부를 알아야합니다. 먼저 다음과 같이 vim을 시작하십시오.

vim -u NONE -U NONE -N -i NONE

이렇게하면 구성 파일을 읽지 않고 viminfo 파일 (-i NONE)을 읽지 않고 호환되지 않는 모드 (-N)로 Vim을 시작합니다 (-u NONE .vimrc 파일을 읽지 않으면 -U NONE, .gvimrc 파일을 읽지 않으면 -N NONE) 또는 심지어 플러그인.


1
FAQ에 있지만 질문에 언급 된 이유로 실제로 작동하지 않습니다.
Rich

@Rich 질문에 대한 귀하의 의견에서 : ensure that none of the behaviour I'm seeing is caused by user config- 이 FAQ에 설명 된 내용을 정확하게 수행하려는 것 같습니다 . 귀하의 질문을 다시 읽었으며 귀하가 언급 한 이유가 무엇인지 여전히 이해하지 못합니다.
mMontu

실제로 FAQ에 설명 된 내용을 정확하게하려고합니다. 그러나 설정으로 인해 솔루션이 작동하지 않습니다 runtimepath.
Rich

정확히 무엇이 잘못 되었나요 runtimepath? 에 설명 된 것처럼이 옵션의 기본값처럼 보입니다 :help rtp. 이 값이 테스트에 어떤 영향을 줍니까?
mMontu

@Rich 파일 형식 감지를 켠 후 새로 설치하는 것과 비교할 때 차이점이 있습니까?
mMontu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.