Basculer entre deux configurations vim différentes?

9

J'ai un dossier .vimrc et .vim que j'ai peaufiné pendant un certain temps, mais sur ma machine à un nouveau travail, je viens d'installer les fichiers dot de ryanb (qui contient des fichiers de configuration pour vim, git, et plus). Il y a des choses que j'aime dans chaque configuration, donc finalement je veux les combiner dans une nouvelle configuration personnelle. En attendant, j'aimerais pouvoir basculer d'avant en arrière.

Existe-t-il une commande simple pour cela dans vim - "utilisez les répertoires .vimrc et .vim suivants" - ou serait-il plus simple d'échanger les fichiers eux-mêmes lorsque je souhaite basculer?

Nathan Long
la source

Réponses:

7

L' -uoption vous permettra de spécifier un fichier de configuration autre que ~ / .vimrc, mais il n'y a pas d'option pour spécifier une alternative au répertoire ~ / .vim. Cependant, vous pouvez demander à Vim d'utiliser un répertoire différent en modifiant l'option 'runtimepath' ('rtp') dans chacun de vos fichiers de configuration. Par exemple, vous pouvez utiliser cette commande

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

dans l'un de vos fichiers de configuration pour indiquer à Vim d'utiliser le répertoire ~ / .vim1 plutôt que le répertoire ~ / .vim.

garyjohn
la source
Je suppose que je peux l'utiliser pour tout garder dans Dropbox :)
Michael Caron
1
@Michael Caron - vous pouvez conserver votre .vimrcet .vimn'importe où, tant que vous avez des liens symboliques dans votre dossier d'accueil vers où vous les placez. Personnellement, j'utilise cette astuce pour conserver toutes mes configurations dans un .dotfilesdossier, que je peux synchroniser avec Github.
Nathan Long
3

-u indique à vim d'utiliser un autre fichier vimrc.

Ignacio Vazquez-Abrams
la source
J'ai récemment appris que vim -u "NONE"ouvre vanim vim, sans configuration. Cela peut être utile si vous avez une configuration complexe et que vous souhaitez savoir si certains comportements sont natifs de Vim ou non. (Cela fonctionne également pour MacVim - je n'ai pas essayé Gvim sur Linux.)
Nathan Long
1

Toggle Config en remplaçant Directory Symlink

J'ai la configuration suivante:

❯ 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

Si vous souhaitez passer à une autre configuration, vous devez simplement exécuter

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

Facultatif: fonction shell avec onglet complet pour changer de configuration

Si vous êtes ambitieux, vous pouvez écrire une fonction shell minimale avec la saisie semi-automatique pour rendre cela super pratique. Par exemple, si vous utilisez zsh, vous pouvez utiliser

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

Il fournit déjà la complétion des onglets et fonctionne partout dans votre système de fichiers:

❯ 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

(nom de fonction volé sur https://github.com/dawsbot/swim )

Hotschke
la source
Bonne solution, je suggère d'ajouter un alias pour chaque configuration alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim", afin que vous puissiez changer votre configuration en tapant simplement l'alias comme vimbasic.
ton
1

Vim Plugin Manager Volt

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

Installation sur macOS: $ brew install volt

La fonction «profil» enregistre un ensemble de plugins, vimrc et gvimrc.

Vous pouvez changer de combinaison avec une seule commande. Par exemple, vous pouvez passer d'une configuration de développement Web à des plugins essentiels + vimrc ou vanilla vim.

Cela est également utile pour créer des configurations minimales lorsque vous posez des questions sur le réseau stackexchange ou des problèmes sur github pour les plugins vim / vim.

Hotschke
la source