두 개의 다른 vim 구성 간을 전환 하시겠습니까?


9

한동안 조정해온 .vimrc 및 .vim 폴더가 있지만 새 작업에서 내 컴퓨터에 ryanb의 도트 파일 (vim, git 등에 대한 구성 파일이 들어 있음)을 설치했습니다. 각 구성마다 내가 좋아하는 것이 있으므로 궁극적으로 새로운 개인 구성으로 결합하고 싶습니다. 한편, 나는 앞뒤로 전환 할 수 있기를 원합니다.

vim에서 "다음 .vimrc 및 .vim 디렉토리 사용"명령을 쉽게 사용할 수 있습니까? 아니면 전환을 원할 때 파일 자체를 교체하는 것이 더 간단합니까?

답변:


7

-u옵션을 사용하면 ~ / .vimrc 이외의 구성 파일을 지정할 수 있지만 ~ / .vim 디렉토리에 대한 대안을 지정할 수있는 옵션은 없습니다. 그러나 각 구성 파일에서 'runtimepath'( 'rtp') 옵션을 수정하여 Vim이 다른 디렉토리를 사용하도록 할 수 있습니다. 예를 들어이 명령을 사용할 수 있습니다

let &rtp = substitute(&rtp, '\.vim\>', '.vim1', 'g')

구성 파일 중 하나에서 Vim에게 ~ / .vim 디렉토리가 아닌 ~ / .vim1 디렉토리를 사용하도록 지시하십시오.


Dropbox의 모든 것을 유지하기 위해 이것을 사용할 수있을 것 같습니다 :)
Michael Caron

1
@Michael 카론 - 당신은 당신을 유지할 수 .vimrc.vim어디서나 당신은 당신이 넣어 어디든지 홈 폴더에 심볼릭 링크를 가지고만큼, 좋아. 개인적 으로이 트릭을 사용하여 모든 구성을 .dotfiles폴더 에 보관 하고 Github에 동기화 할 수 있습니다.
Nathan Long

3

-u vim에게 대체 vimrc 파일을 사용하도록 지시합니다.


나는 최근에 vim -u "NONE"구성없이 바닐라 vim 을 여는 것을 알게되었습니다 . 복잡한 구성이 있고 일부 동작이 Vim에 고유한지 여부를 알고 싶을 때 유용 할 수 있습니다. (이것은 MacVim에서도 작동합니다. Linux에서 Gvim을 시도하지 않았습니다.)
Nathan Long

1

디렉토리 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 에서 훔친 기능 이름 )


좋은 해결책은와 같은 각 구성에 대한 별칭을 추가하는 것이 좋습니다 . alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim"따라서 별칭을 입력하여 구성을 변경할 수 있습니다 vimbasic.
ton

1

Vim 플러그인 관리자 볼트

https://github.com/vim-volt/volt

macOS에 설치 : $ brew install volt

“profile”기능은 플러그인, vimrc 및 gvimrc 세트를 저장합니다.

하나의 명령으로 조합을 전환 할 수 있습니다. 예를 들어, 웹 개발 설정에서 필수 플러그인 + vimrc 또는 바닐라 vim으로 전환 할 수 있습니다.

이것은 또한 vix / vim 플러그인에 대한 stackexchange 네트워크 또는 github 관련 문제를 제기 할 때 최소한의 구성을 만드는 데 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.