내가 사용할 수있는 vim -u filename
사용하는 filename
대신 내 기본의 .vimrc
. (사용자 컨텍스트를 전환 할 때이 방법을 사용하고 있습니다 su
)를 사용하여 내 .vimrc
도 수퍼 유저로 실행하지만.
기본적으로 명령 줄 에서 대체 폴더로 Vim 을 가리킬 수 있는 폴더에 대해서도 같은 작업 을 수행~/.vim
할 수 있습니까?
내가 달성하고 싶은 것
사용자 joe
( HOME=/home/joe
)와 사용자 root
( HOME=/root
)로 가정합니다 . 사용자 joe
에게는 vim
다음과 같은 별칭 세트가 있습니다 (그러나 원래는 $HOME
변수를 사용하여 동적으로 설정합니다).
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
그런 다음 사용자 joe
는 라인을 따라 무언가를 수행 sudo su -
하지만 (마법이 추가됨) .bashrc
및를 /home/joe
위한 다른 상품 이로드됩니다 root
. 사용자 root
는 이제 vim
위에 표시된 것과 동일한 별칭을 설정했습니다.
문제는 .vimrc
다양한 시스템과 다양한 시나리오에서 사용 된다는 것 입니다. 종종 Joe의 계정은이라고도 joe
하지만 때로는 local.joe
다른 것과 같 거나 다른 값이되어에 대한 값이 다를 수 $HOME
있습니다. 따라서 ~/.vim
폴더 의 절대 경로를 하드 코딩하는 것은 좋은 생각이 아닙니다. 그러나 위 시나리오에서 사용자 root
에게는 /root/.vim
기본적으로로드 된 .vimrc
( /home/joe/.vimrc
)을 통해 존재 하는 폴더가 없습니다 .
내가 원하는 것은-바람직하게는 명령 줄에서 Vim이 /home/joe/.vim
시작될 때 아래에서 플러그인 등을 사용하도록 root
하는 alias
것입니다 (표시 된 것처럼 가정 -다른 경우는 무시할 수 있음). VimScript를 통한 동적 방법이있는 경우 포인터를 제공하십시오. 그러나 $HOME
캐치 22로 이어질 같은 변수를 사용 한다고 생각합니다.
ln
. 'mv ~ / .vim ~ / .vim-whatever && ln -s ~ / .vim-whatever ~ / .vim`과 같이 동일한 작업을 수행하십시오.vimrc
. 어떤 방법 으로든 다른 방법으로 쉽게 전환 할 수 있도록 모든 것을 bash 별칭으로 마무리하십시오.