태그 보관물: vimrc

vimrc

.vimrc를 외부 파일에서 어떻게 읽을 수 있습니까? whoami = “user2” if whoami == “user1” … 우리의

.vimrc외부 파일에서 변수 값을 읽 도록 수정하고 싶습니다 . 어떻게해야합니까?

특히, 친구와 나는 .vim파일 과 git repo를 공유 하지만 구성에서 원하는 것에 약간의 차이가 있습니다. 따라서 대부분의 파일이 일반적이지만 if 문을 사용하여 다음과 같이 사용자 별 섹션을로드할지 여부를 결정합니다.

let whoami = "user2"
if whoami == "user1"
...

우리의 공통된 .vimrc소스 제어를 확인한 후에 , 우리는 각자 let whoami의 섹션이로드되도록 할당 을 변경해야 합니다. 대신 별도의 파일을 유지하고 싶습니다. 각 파일마다 다를 수 있으며 vim이 해당 변수 값을로드합니다.

어쩌면 이것에 대한 또 다른 각도는 다음과 같습니다. vim은 내 .vim디렉토리의 모든 파일을 자동으로 읽 습니까? 그렇다면 username.vim이라는 심볼릭 링크를 각각 다른 외부 파일에 연결할 수 있습니다.



답변

기본 .vimrc 파일에서 :

source otherVimScriptFilePath.vim

그런 다음 변수 문을 해당 파일에 넣으십시오.

" otherVimScriptFilePath.vim
let whoami = "user1"


답변

try / catch 사용

이 질문을 한 후 외부 파일을로드하는 또 다른 유스 케이스 인 머신 특정 조정을 생각해 냈습니다.

주어진 컴퓨터에서 조정해야 할 수도 있고 필요하지 않을 수도 있기 때문에 try/catch외부 파일을로드 하는 데 a 를 사용하고 있습니다. 그러한 파일이 없으면 자동으로 실패하게합니다.

" If there are any machine-specific tweaks for Vim, load them from the following file.
try
  source ~/.vimrc_machine_specific
catch
  " No such file? No problem; just ignore it.
endtry


답변

마지막 질문에 답하기 위해 파일 ~/.vim은 자동으로로드되지 않지만 모든 파일은로드 ~/.vim/plugin됩니다.


답변

~ / .vimrc가 :source명령을 사용하여 다른 파일을로드하도록 할 수 있습니다 . 예를 들어, 각각 고유 한 명령을 ~ / .myvimrc에 넣고 해당 명령을

source ~/.myvimrc

또는 생각할 때 각각 다음과 같이 파일에 이름을 넣을 수 있습니다.

let user = "user1"

그리고 이것을 ~ / .vimrc에 넣으십시오.

source ~/.myvimrc
if user == "user1"
    " do this
elseif user == "user2"
    " do that
else
    echo "Invalid user"
endif

그러나 파일에 이름을 넣는 대신 akira가 제안한대로 $ USER를 user사용 하거나 다음과 같이을 사용하여 설정할 수 있습니다 whoami.

let user = substitute(system('whoami'), '\n', '', '')

replace () 함수는 system ()의 출력에 보통 ‘\ n’이 붙어 있기 때문에 필요합니다.


답변

로그인 한 사용자의 이름은 $ USER 환경 변수에서 사용 가능합니다. 해당 변수에 쉽게 액세스 할 수 있습니다.

:echo $USER

그래서, 그냥 사용하십시오

execute "silent! source vimrc." . $USER

vimrc에서 사용자 특정 설정을

vimrc.joe

또는 귀하의 로그인 이름이 무엇이든


답변

나는 당신의 vimrc가 어떻게 보이는지 잘 모르겠으므로 이것이 가능하지 않을 수도 있지만, 당신과 당신의 친구가 공유하는 큰 부분이 있다면, 그것들을 별도의 플러그인으로 나누고 싶을 수도 있습니다. ~/.vim/plugin시작시로드되도록 파일을 디렉토리에 추가 할 수 있습니다 . (알파벳 순서로로드되어 :scriptnames있습니다. 확인에 사용 하십시오.)

그렇게하면 각각 고유 한 vimrc를 가질 수 있지만 모든 공통 구성은 플러그인에 있습니다. 논리적으로 분리하면 다른 사람과도 쉽게 공유 할 수 있습니다.


답변