Passare tra due diverse configurazioni vim?


9

Ho una cartella .vimrc e .vim che sto modificando da un po ', ma sulla mia macchina in un nuovo lavoro, ho appena installato i dotfile di ryanb (che contiene file di configurazione per vim, git e altro). Ci sono cose che mi piacciono in ogni configurazione, quindi alla fine voglio combinarle in una nuova configurazione personale. Nel frattempo, vorrei essere in grado di passare avanti e indietro.

Esiste un comando semplice per questo in vim - "usa le seguenti directory .vimrc e .vim" - o sarebbe più semplice scambiare i file stessi quando voglio cambiare?

Risposte:


7

L' -uopzione ti permetterà di specificare un file di configurazione diverso da ~ / .vimrc, ma non esiste alcuna opzione per specificare un'alternativa alla directory ~ / .vim. Tuttavia, puoi fare in modo che Vim usi una directory diversa modificando l'opzione 'runtimepath' ('rtp') in ciascuno dei tuoi file di configurazione. Ad esempio, è possibile utilizzare questo comando

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

in uno dei tuoi file di configurazione per dire a Vim di usare la directory ~ / .vim1 anziché la directory ~ / .vim.


Immagino di poterlo usare per tenere tutto in Dropbox :)
Michael Caron,

1
@Michael Caron: puoi tenere il tuo .vimrce .vimovunque tu voglia, purché tu abbia dei collegamenti simbolici nella tua cartella home dove li metti. Personalmente, utilizzo questo trucco per conservare tutte le mie configurazioni in una .dotfilescartella, che posso sincronizzare con Github.
Nathan Long,

3

-u dice a vim di usare un file vimrc alternativo.


Di recente ho appreso che vim -u "NONE"apre Vanilla Vim, senza configurazione. Questo può essere utile se hai una configurazione complessa e vuoi sapere se un comportamento è nativo o meno di Vim. (Funziona anche con MacVim - Non ho provato Gvim su Linux.)
Nathan Long,

1

Attiva / disattiva la configurazione sostituendo il collegamento simbolico della directory

Ho la seguente configurazione:

❯ 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

Se vuoi passare a una configurazione diversa, devi semplicemente eseguire

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

Opzionale: funzione shell con scheda completa per la commutazione della configurazione

Se sei ambizioso, potresti scrivere una funzione di shell minima con il completamento automatico per rendere questo super-comodo. Ad esempio se si utilizza zsh, è possibile utilizzare

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

Fornisce già il completamento delle schede e funziona ovunque nel file system:

❯ 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

(nome della funzione rubato da https://github.com/dawsbot/swim )


Buona soluzione, suggerisco di aggiungere un alias per ogni configurazione alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim", in modo da poter cambiare la configurazione semplicemente digitando l'alias come vimbasic.
ton

1

Vim Plugin Manager Volt

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

Installazione su macOS: $ brew install volt

La funzione "profilo" salva un set di plugin, vimrc e gvimrc.

Puoi cambiare combinazione con un solo comando. Ad esempio, puoi passare da un'impostazione di sviluppo web a plugin essenziali + vimrc o vanilla vim.

Questo è utile anche per creare configurazioni minime quando si sollevano domande sulla rete stackexchange o problemi su github per plugin vim / vim.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.