내가 사용할 수있는 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 별칭으로 마무리하십시오.