दो अलग-अलग विम कॉन्फ़िगरेशन के बीच टॉगल करें?


9

मुझे एक .vimrc और .vim फ़ोल्डर मिला है, जिसे मैं थोड़ी देर के लिए ट्विक कर रहा हूं, लेकिन एक नई नौकरी में अपनी मशीन पर, मैंने बस ryanb का डॉटफ़ाइल्स (जिसमें vim, git, और बहुत कुछ के लिए कॉन्फ़िग फाइल्स हैं) इंस्टॉल किया है । ऐसी चीजें हैं जो मुझे प्रत्येक कॉन्फ़िगरेशन में पसंद हैं, इसलिए अंततः मैं उन्हें एक नए व्यक्तिगत कॉन्फ़िगरेशन में जोड़ना चाहता हूं। इस बीच, मैं आगे और पीछे स्विच करने में सक्षम होना चाहते हैं।

क्या इसके लिए कोई आसान कमांड vim है - "निम्न .vimrc और .vim डाइरेक्टरी का उपयोग करें" - या जब मैं स्विच करना चाहता हूं तो फाइलों को स्वयं स्वैप करना अधिक सरल होगा?

जवाबों:


7

-uविकल्प आपको एक विन्यास के अलावा अन्य फ़ाइल निर्दिष्ट करने की अनुमति देगा ~ / .vimrc, लेकिन वहाँ ~ / .vim निर्देशिका के लिए एक विकल्प निर्दिष्ट करने के लिए कोई विकल्प नहीं है। हालाँकि, आप अपने प्रत्येक कॉन्फ़िगरेशन फ़ाइल में 'रनटाइमपथ' ('आरटीपी') विकल्प को संशोधित करके एक अलग निर्देशिका का उपयोग कर सकते हैं। उदाहरण के लिए, आप इस कमांड का उपयोग कर सकते हैं

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

Vim को ~ / .vim निर्देशिका के बजाय ~ / .vim1 निर्देशिका का उपयोग करने के लिए बताने के लिए अपनी कॉन्फ़िगरेशन फ़ाइलों में से एक में।


मुझे लग रहा है कि मैं ड्रॉपबॉक्स में सब कुछ रखने के लिए इसका इस्तेमाल कर सकता हूं :)
माइकल कैरन

1
@ मिचेल कैरन - आप अपने घर के फोल्डर में जब तक आप उन्हें डालते हैं, तब तक आप .vimrcऔर .vimकहीं भी, जैसे चाहें, अपने पास रख सकते हैं। व्यक्तिगत रूप से, मैं इस ट्रिक का उपयोग अपने सभी कॉन्फिगर्स को एक .dotfilesफोल्डर में रखने के लिए करता हूं , जिसे मैं गितुब में सिंक कर सकता हूं।
नाथन लॉन्ग

3

-u वैकल्पिक vimrc फ़ाइल का उपयोग करने के लिए विम को बताता है।


मैंने हाल ही में सीखा है कि vim -u "NONE"वेनिला विम खुलता है, जिसमें कोई कॉन्फ़िगरेशन नहीं है। यदि आप एक जटिल विन्यास प्राप्त कर चुके हैं तो यह उपयोगी हो सकता है और जानना चाहता है कि कुछ व्यवहार Vim का मूल है या नहीं। (यह MacVim के लिए भी काम करता है - मैंने लिनक्स पर Gvim की कोशिश नहीं की है।)
नाथन लॉन्ग

1

निर्देशिका सिम्कलिन को प्रतिस्थापित करके कॉन्फ़िगर टॉगल करें

मेरे पास सेटअप है:

❯ 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 से चुराया गया )


अच्छा समाधान, मैं सुझाव देता हूं कि प्रत्येक कॉन्फिग जैसे के लिए एक उपनाम जोड़ें alias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim", जिससे आप अपने कॉन्टेक्ट को बदल सकते हैं जैसे ऑलियास टाइप करना vimbasic
टन

1

विम प्लगइन प्रबंधक वोल्ट

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

MacOS पर स्थापना: $ brew install volt

फीचर "प्रोफाइल" प्लगइन्स का एक सेट, vimrc, और gvimrc बचाता है।

आप एक कमांड के साथ संयोजन स्विच कर सकते हैं। उदाहरण के लिए, आप एक वेब डेवलपमेंट सेटअप से आवश्यक प्लगइन्स + vimrc, या वेनिला विम पर स्विच कर सकते हैं।

स्टैकटेक्चेंज नेटवर्क या वीम / वीआईएम प्लगइन्स के लिए जीथब पर सवाल उठाते समय यह न्यूनतम कॉन्फ़िगरेशन बनाने में भी सहायक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.