İki farklı vim konfigürasyonu arasında geçiş yap?


9

Bir süredir ince ayar yaptığım bir .vimrc ve .vim klasörüne sahibim, ancak makinemde yeni bir işte, ryanb'in nokta dosyalarını (vim, git ve daha fazlası için config dosyalarını içeren) kurdum . Her yapılandırmada hoşuma giden şeyler var, bu yüzden sonunda onları yeni bir kişisel yapılandırmada birleştirmek istiyorum. Bu arada, ileri geri geçiş yapabilmek istiyorum.

Vim'de bunun için kolay bir komut var mı? - "aşağıdaki .vimrc ve .vim dizinini kullanın" - yoksa geçiş yapmak istediğimde dosyaları değiştirmek daha kolay olur mu?

Yanıtlar:


7

Bu -useçenek, ~ / .vimrc dışında bir yapılandırma dosyası belirlemenize izin verecektir, ancak ~ / .vim dizinine alternatif belirtme seçeneği yoktur. Bununla birlikte, Vim'in her yapılandırma dosyanızdaki 'runtimepath' ('rtp') seçeneğini değiştirerek farklı bir dizin kullanmasını sağlayabilirsiniz. Örneğin, bu komutu kullanabilirsiniz

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

yapılandırma dosyalarınızdan birine Vim'e ~ / .vim dizini yerine ~ / .vim1 dizinini kullanmasını söyleyin.


Sanırım bunu Dropbox'taki her şeyi tutmak için kullanabilirim :)
Michael Caron

1
@Michael Caron - Ev klasörünüzdeki simgeleri , istediğiniz yere koyduğunuz sürece, istediğiniz yerde .vimrcve .vimistediğiniz yerde tutabilirsiniz . Şahsen, bu numarayı tüm konfigürasyonlarımı .dotfilesGithub ile senkronize edebileceğim bir klasörde tutmak için kullanıyorum .
Nathan Long,

3

-u vim'e alternatif bir vimrc dosyası kullanmasını söyler.


Kısa bir süre önce vim -u "NONE", yapılandırmasız vanilya açısını açtığını öğrendim . Karmaşık bir konfigürasyona sahipseniz ve bazı davranışların Vim'e özgü olup olmadığını bilmek istiyorsanız faydalı olabilir. (Bu MacVim için de işe yarar - Linux'ta Gvim'i denemedim.)
Nathan Long

1

Dizin Symlink Değiştirerek Config Toggle

Kurulumu takip ediyorum:

❯ 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

Farklı bir konfigürasyona geçmek istiyorsanız, sadece çalıştırmanız gerekir.

❯ ln -snf ~/.vim-configs/configX ~/.vim

İsteğe bağlı: config anahtarlama için sekmeli komple kabuk fonksiyonu

Eğer hırslıysanız, bu süper-elverişli hale getirmek için otomatik tamamlama özelliğine sahip minimal bir kabuk işlevi yazabilirsiniz. Örneğin, zsh kullanıyorsanız, kullanabilirsiniz

# 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
}

Zaten sekme tamamlama sağlar ve dosya sisteminizin her yerinde çalışır:

❯ 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

(işlev adı https://github.com/dawsbot/swim adresinden çalınmış )


İyi bir çözüm, gibi her yapılandırma için bir takma ad eklemenizi öneririm alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim", böylece sadece takma adınızı yazarak ayarlarınızı değiştirebilirsiniz vimbasic.
ton

1

Vim Eklenti Yöneticisi Volt

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

MacOS'ta kurulum: $ brew install volt

“Profil” özelliği bir dizi eklentiyi (vimrc ve gvimrc) kurtarır.

Kombinasyonları tek bir komutla değiştirebilirsiniz. Örneğin, bir web geliştirme kurulumundan temel eklentiler + vimrc veya vanilya vim'e geçiş yapabilirsiniz.

Bu aynı zamanda stackexchange ağındaki soruları ya da vim / vim eklentileri için github'daki sorunları ortaya çıkarırken minimal konfigürasyonlar oluşturmanıza yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.