Zwischen zwei verschiedenen vim-Konfigurationen wechseln?

9

Ich habe einen .vimrc- und einen .vim-Ordner, die ich seit einiger Zeit optimiert habe, aber auf meinem Computer habe ich gerade bei einem neuen Job die Dotfiles von ryanb installiert (die Konfigurationsdateien für vim, git und mehr enthalten). Es gibt Dinge, die mir in jeder Konfiguration gefallen, also möchte ich sie letztendlich zu einer neuen persönlichen Konfiguration kombinieren. In der Zwischenzeit möchte ich in der Lage sein, hin und her zu wechseln.

Gibt es dafür in vim einen einfachen Befehl - "Verwenden Sie das folgende Verzeichnis .vimrc und .vim" - oder wäre es einfacher, die Dateien selbst auszutauschen, wenn ich wechseln möchte?

Nathan Long
quelle

Antworten:

7

Mit dieser -uOption können Sie eine andere Konfigurationsdatei als ~ / .vimrc angeben. Es gibt jedoch keine Option, eine Alternative zum Verzeichnis ~ / .vim anzugeben. Sie können Vim jedoch ein anderes Verzeichnis verwenden lassen, indem Sie die Option 'Laufzeitpfad' ('rtp') in jeder Ihrer Konfigurationsdateien ändern. Sie können diesen Befehl beispielsweise verwenden

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

in einer Ihrer Konfigurationsdateien, um Vim anzuweisen, das Verzeichnis ~ / .vim1 anstelle des Verzeichnisses ~ / .vim zu verwenden.

Garyjohn
quelle
Ich schätze, ich kann das verwenden, um alles in Dropbox zu behalten :)
Michael Caron
1
@Michael Caron - Sie können Ihre .vimrcund .vimüberall behalten , solange Sie Symlinks in Ihrem Home-Ordner haben, wo immer Sie sie ablegen . Persönlich verwende ich diesen Trick, um alle meine Konfigurationen in einem .dotfilesOrdner zu speichern , den ich mit Github synchronisieren kann.
Nathan Long
3

-u Weist vim an, eine alternative vimrc-Datei zu verwenden.

Ignacio Vazquez-Abrams
quelle
Ich habe kürzlich erfahren, dass vim -u "NONE"Vanilla Vim ohne Konfiguration geöffnet wird. Dies kann nützlich sein, wenn Sie eine komplexe Konfiguration haben und wissen möchten, ob ein Verhalten für Vim typisch ist oder nicht. (Dies funktioniert auch für MacVim - ich habe Gvim unter Linux nicht ausprobiert.)
Nathan Long
1

Schalten Sie die Konfiguration um, indem Sie Directory Symlink ersetzen

Ich habe folgendes Setup:

❯ 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

Wenn Sie zu einer anderen Konfiguration wechseln möchten, müssen Sie nur ausführen

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

Optional: Shell-Funktion mit vollständigem Tab zum Umschalten der Konfiguration

Wenn Sie ehrgeizig sind, können Sie eine minimale Shell-Funktion mit automatischer Vervollständigung schreiben, um dies super bequem zu machen. Wenn Sie beispielsweise zsh verwenden, können Sie verwenden

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

Es bietet bereits eine Tab-Vervollständigung und funktioniert überall in Ihrem Dateisystem:

❯ 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

(Funktionsname von https://github.com/dawsbot/swim gestohlen )

Hotschke
quelle
Gute Lösung, ich schlage vor, einen Alias ​​für jede Konfiguration wie hinzuzufügen alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim", damit Sie Ihre Konfiguration ändern können, indem Sie einfach den Alias ​​wie eingeben vimbasic.
Ton
1

Vim Plugin Manager Volt

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

Installation unter macOS: $ brew install volt

Die Funktion "Profil" speichert eine Reihe von Plugins, vimrc und gvimrc.

Sie können Kombinationen mit einem Befehl wechseln. Sie können beispielsweise von einem Webentwicklungs-Setup zu wichtigen Plugins + vimrc oder Vanilla vim wechseln.

Dies ist auch hilfreich, wenn Sie minimale Konfigurationen erstellen, wenn Sie Fragen zum Stackexchange-Netzwerk oder zu Problemen mit Github für VIM / VIM-Plugins stellen.

Hotschke
quelle