Перемикання між двома різними конфігураціями vim?


8

Я отримав папку .vimrc і .vim, яку я налаштував на деякий час, але на своїй машині на новій роботі я тільки що встановив крапки Рянба (яка містить конфігураційні файли для vim, git та інших). Є речі, які мені подобаються в кожному конфіг, так що в кінцевому рахунку я хочу, щоб об'єднати їх в новий персональний конфігурації. Тим часом я хотів би мати можливість перемикатися вперед і назад.

Чи існує легка команда для цього в vim - "використовуйте наступний .vimrc і .vim каталог" - або було б більш простим поміняти самі файли, коли я хочу перейти?

Відповіді:


6

The -u опція дозволить вам вказати файл конфігурації, відмінний від ~ / .vimrc, але немає можливості вказати альтернативу до каталогу ~ / .vim. Тим не менш, ви можете використовувати Vim іншу директорію, змінюючи параметр 'runtimepath' ('rtp') у кожному з ваших конфігураційних файлів. Наприклад, можна використовувати цю команду

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

в одному з ваших конфігураційних файлів, щоб повідомити Vim про використання каталогу ~ / .vim1, а не для каталогу ~ / .vim.


Я гадаю, я можу використовувати це, щоб зберегти все в Dropbox :)
Michael Caron

1
@Michael Caron - ви можете зберегти свій .vimrc і .vim в будь-якому місці, якщо у вас є символічні посилання у вашій домашній папці, де б ви не розмістили їх. Особисто я використовую цей трюк, щоб зберегти всі мої налаштування в .dotfiles папку, яку я можу синхронізувати з Github.
Nathan Long

3

-u повідомляє vim використовувати альтернативний файл vimrc.


Я нещодавно дізнався про це vim -u "NONE" відкриває ваніль vim, без конфігурації. Це може бути корисним, якщо ви маєте складну конфігурацію і хочете знати, чи є певна поведінка рідною для Vim чи ні. (Це також працює для MacVim - я не пробував Gvim на Linux.)
Nathan Long

0

Перемкніть конфігурацію, замінивши Символу посилання

Я встановив:

❯ 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

Якщо ви хочете змінити конфігурацію, вам потрібно просто виконати

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

Необов'язково: функція оболонки з вкладкою завершена для перемикання конфігурації

Якщо ви амбіційні, ви можете написати мінімальну функцію оболонки з автозавершенням, щоб зробити це надбаковим. Наприклад, якщо ви використовуєте zsh, ви можна використовувати

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

Вона вже забезпечує завершення вкладок та працює всюди у вашій файловій системі:

❯ 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

(назва функції викрадена з https://github.com/dawsbot/swim )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.