Alterna entre duas configurações diferentes do vim?

8

Eu tenho uma pasta .vimrc e .vim Eu estive tweaking por um tempo, mas na minha máquina em um novo trabalho, eu acabei de instalar dotfiles do ryanb (que contém arquivos de configuração para o vim, git e mais). Há coisas que eu gosto em cada configuração, então, em última análise, quero combiná-las em uma nova configuração pessoal. Enquanto isso, gostaria de poder mudar de um lado para o outro.

Existe um comando fácil para isso no vim - "use o seguinte diretório .vimrc e .vim" - ou seria mais simples trocar os arquivos quando eu quisesse mudar?

    
por Nathan Long 09.11.2010 / 20:09

3 respostas

6

A opção -u permitirá que você especifique um arquivo de configuração diferente de ~ / .vimrc, mas não há opção para especificar uma alternativa ao diretório ~ / .vim. No entanto, você pode fazer com que o Vim use um diretório diferente, modificando a opção 'runtimepath' ('rtp') em cada um dos seus arquivos de configuração. Por exemplo, você poderia usar este comando

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

em um dos seus arquivos de configuração para dizer ao Vim para usar o diretório ~ / .vim1 em vez do diretório ~ / .vim.

    
por 10.11.2010 / 07:40
3

-u diz ao vim para usar um arquivo vimrc alternativo.

    
por 09.11.2010 / 20:13
0

Alternar configuração substituindo o link simbólico de diretório

Eu tenho a seguinte configuração:

❯ 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 você quiser mudar para uma configuração diferente, basta executar

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

Opcional: função shell com aba completa para configuração de comutação

Se você é ambicioso, você poderia escrever uma função de shell mínima com autocompletar para torná-lo superconveniente. Por exemplo, se você usa zsh, você poderia usar

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

Ele já fornece conclusão de tabulação e funciona em todos os lugares no seu sistema de arquivos:

❯ 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 da função roubado de link )

    
por 03.04.2018 / 16:52

Tags