한동안 조정해온 .vimrc 및 .vim 폴더가 있지만 새 작업에서 내 컴퓨터에 ryanb의 도트 파일 (vim, git 등에 대한 구성 파일이 들어 있음)을 설치했습니다. 각 구성마다 내가 좋아하는 것이 있으므로 궁극적으로 새로운 개인 구성으로 결합하고 싶습니다. 한편, 나는 앞뒤로 전환 할 수 있기를 원합니다.
vim에서 “다음 .vimrc 및 .vim 디렉토리 사용”명령을 쉽게 사용할 수 있습니까? 아니면 전환을 원할 때 파일 자체를 교체하는 것이 더 간단합니까?
답변
이 -u
옵션을 사용하면 ~ / .vimrc 이외의 구성 파일을 지정할 수 있지만 ~ / .vim 디렉토리에 대한 대안을 지정할 수있는 옵션은 없습니다. 그러나 각 구성 파일에서 ‘runtimepath'( ‘rtp’) 옵션을 수정하여 Vim이 다른 디렉토리를 사용하도록 할 수 있습니다. 예를 들어이 명령을 사용할 수 있습니다
let &rtp = substitute(&rtp, '\.vim\>', '.vim1', 'g')
구성 파일 중 하나에서 Vim에게 ~ / .vim 디렉토리가 아닌 ~ / .vim1 디렉토리를 사용하도록 지시하십시오.
답변
-u
vim에게 대체 vimrc 파일을 사용하도록 지시합니다.
답변
디렉토리 Symlink를 교체하여 구성 전환
다음 설정이 있습니다.
❯ tree -L 2 ~/.vim-configs
~/.vim-configs
├── nathanl
│ ├── .git
│ ├── gvimrc
│ ├── pack
│ └── vimrc
├── ryanb
│ ├── autoload
│ ├── ...
│ └── vimrc
└── minimal
├── autoload
├── cache
├── doc
├── plugin
└── vimrc
❯ ls -l ~/.vim
lrwxr-xr-x 1 hotschke staff 42 Apr 3 16:35 .vim -> /Users/hotschke/.vim-configs/minimal
다른 구성으로 변경하려면 간단히 실행하면됩니다.
❯ ln -snf ~/.vim-configs/configX ~/.vim
선택 사항 : 구성 전환을 위해 탭 완성 기능이있는 쉘 기능
야심이 있다면 자동 완성 기능을 갖춘 최소한의 쉘 함수를 작성하여이 초 편리함을 만들 수 있습니다. 예를 들어 zsh를 사용하면
# Swim - Switch Vim Configs
compdef '_path_files -/ -W ~/.vim-configs' swim
function swim {
if [ $# -eq 0 ]
then
zmodload zsh/stat
active=$(stat +link "$HOME/.vim")
echo "Swimming with ${${active}:t}"
echo "$HOME/.vim -> $active"
zmodload -u zsh/stat
else
echo "Swimming with $1"
ln -snfv ~/.vim-configs/$1 ~/.vim
fi
}
이미 탭 완성을 제공하며 파일 시스템의 모든 곳에서 작동합니다.
❯ pwd
<somewhere in your filesystem not necessarily $HOME or $HOME/.vim>
❯ swim <Tab>
-- directory --
minimal/ nathanl/ ryanb/
❯ swim minimal
Swimming with minimal
/Users/hotschke/.vim -> /Users/hotschke/.vim-configs/minimal
❯ swim
Swimming with minimal
/Users/hotschke/.vim -> /Users/hotschke/.vim-configs/minimal
( https://github.com/dawsbot/swim 에서 훔친 기능 이름 )
답변
Vim 플러그인 관리자 볼트
https://github.com/vim-volt/volt
macOS에 설치 : $ brew install volt
“profile”기능은 플러그인, vimrc 및 gvimrc 세트를 저장합니다.
하나의 명령으로 조합을 전환 할 수 있습니다. 예를 들어, 웹 개발 설정에서 필수 플러그인 + vimrc 또는 바닐라 vim으로 전환 할 수 있습니다.
이것은 또한 vix / vim 플러그인에 대한 stackexchange 네트워크 또는 github 관련 문제를 제기 할 때 최소한의 구성을 만드는 데 도움이됩니다.