2010-10-10 12 views
8

मैं अपने विम और Emacs कॉन्फ़िगरेशन को संस्करण नियंत्रण के तहत रखना चाहता हूं, लेकिन नहीं मेरा पूरा घर फ़ोल्डर चाहता है (या बल्कि, मैं करता हूं, लेकिन 3 अलग-अलग भंडार होना चाहिए) । Emacs के साथ यह आसान है; अगर ~/.emacs मौजूद नहीं है, तो ~/.emacs.d/init.el इनिट फ़ाइल के रूप में उपयोग किया जाता है। इसलिए मेरे पास ~/.emacs.d/ में एक अलग गिट रेपो हो सकता है। विम के साथ, ऐसा लगता है कि .vimrcकेवल घर फ़ोल्डर में मौजूद है और ~/vimfiles (~/.emacs.d के बराबर नहीं) में मौजूद है। this संस्करण नियंत्रण के तहत .vimrc डालने का सबसे अच्छा तरीका है?vimfiles निर्देशिका में vimrc डालकर

उत्तर

6

शायद आपके .vimrc से ~/.vim/ पर जाकर घर पर सिमलिंकिंग करेगा?

अन्य, कहीं अधिक मॉड्यूलर दृष्टिकोण, ~/.vim/plugins/ करने के लिए अपने स्टार्टअप स्क्रिप्ट स्थानांतरित करने के लिए शायद एक उपनिर्देशिका वहाँ, और एक या कई init स्क्रिप्ट बनाने है: जब शुरू करने विम एक :runtime! plugin/**/*.vim करेंगे।

+0

की तरह आपकी दूसरी सुझाव _precisely_ मैं क्या बारे में पूछ रहा था। –

+0

जैसा हुआ, मुझे यह सुनिश्चित करने के लिए 'रनटाइम वीमआरसी' दृष्टिकोण का उपयोग करने के लिए मजबूर होना पड़ा, यह सुनिश्चित करने के लिए कि मेरी स्टार्टअप स्क्रिप्ट पहले लोड हो गई है और पथजन _before_ को लोड करने का मौका मिलता है: रनटाइम! प्लगइन/**/*। vim'। –

+1

ओह, इस तरह की विशेष स्थितियां वास्तव में ऐसी अच्छी तकनीक को अमान्य कर सकती हैं। क्या आपने अतिरिक्त टिप्स के लिए 'start.txt' में मदद की है? फ़ाइलों को वर्णानुक्रम में सोर्स किया गया है, इसलिए आपकी स्टार्टअप स्क्रिप्ट का नाम बदलकर '00_startup.vim' कर सकता है? – progo

1

आप केवल संस्करण नियंत्रण में बैकअप रख सकते हैं और इसे अपनी होम निर्देशिका में तैनात कर सकते हैं (यानी इसे स्थानांतरित करें) जब आपको इसकी आवश्यकता हो। आप इस हैंडलिंग को प्रबंधित करने के लिए एक आसान स्क्रिप्ट लिख सकते हैं ताकि कम से कम पारदर्शी रूप से इसे आगे और आगे बढ़ने के लिए बहुत परेशान करने वाला काम न लगे।

2

प्रक्रिया में एक कदम जोड़ता है, लेकिन मेरे पास मेरी vim सेटिंग्स में बस एक बैश स्क्रिप्ट deploy.sh है।

#!/bin/bash 

if [ -f ~/.vimrc ] && [ ! -L ~/.vimrc ] 
then 
    echo "Backing up existing ~/.vimrc to ~/.vimrc.bak" 
    mv ~/.vimrc ~/.vimrc.bak 
fi 
if [ -L ~/.vimrc ] 
then 
    echo "Already have ~/.vimrc symlink, we're good" 
else 
    echo "Creating symlink ~/.vimrc, which points to ~/.vim/vimrc" 
    ln -s ~/.vim/vimrc ~/.vimrc 
fi 

git submodule init 
git submodule update 
3

@Progo उनके जवाब में पता चलता है, ~/.vimrc सेटिंग्स ~/.vim/plugin/00rc.vim की तरह एक फ़ाइल के भीतर एक "प्लगइन" स्क्रिप्ट में ले जाया जा सकता है।

चीजों के एक जोड़े को ध्यान में रखना जब नीचे इस ओर जाने वाली सड़क के होते हैं:

उपयोगकर्ता और प्लग इन एक जैसे उम्मीद करते हैं कि ~/.vimrc में सेटिंग्स से पहले प्लगइन्स :help startup में वर्णित के रूप हैं लोड नहीं हुआ। ~/.vim 'runtimepath' में पहली आमतौर पर है, लेकिन अगर उपयोगकर्ता ~/.vim/plugin में अन्य प्लग-इन है, .vimrc प्रतिस्थापन सुनिश्चित करने के लिए यह पहली बार भरी हुई है, शायद ~/.vim/plugin/00rc.vim कोषगत पहले होना चाहिए।

vim स्टार्टअप प्रक्रिया चरण 3 से बढ़ता है तो 'निष्पादित पूर्व आदेश' (हैं जहां .vimrc पढ़ा गया है; फिर, :help startup देखें) चरण 4 'प्लगइन स्क्रिप्ट लोड' के लिए, यह :runtime! plugin/**/*.vim चलाता है। यह आदेश स्रोत से फ़ाइलों से मेल खाने के लिए 'runtimepath' के माध्यम से दिखता है और फिर उन्हें सोर्सिंग शुरू करता है। इसका मतलब है कि ~/.vim/plugin/00rc.vim संशोधित 'runtimepath' में कुछ तो यह प्रभावित करने के लिए जो प्लग इन चलाने कर रहे हैं बहुत देर हो चुकी किया गया है जाएगा। यह pathogen साथ सबसे अधिक होता है और उस मामले में यह ~/.vim/plugin/00rc.vim के अंत में निम्नलिखित लाइनों को जोड़कर आसपास काम किया जा सकता है: अगर एक ~/.vimrc फ़ाइल नहीं है,

" Since this "vimrc" is really run as a plugin, vim has already compiled the 
" list of paths/plugins that it wil execute at startup. 
" As a result, the pathogen plugins must be run manually. 
runtime! bundle/*/plugin/**/*.vim 
runtime! bundle/*/after/plugin/**/*.vim 

अंत में, (फिर :help startup में समझाया गया है) वर्तमान, vim ~/.exrc की तरह अन्य फ़ाइलों के लिए खोज करेंगे तो यह उन्हें हटाने के लिए करता है, तो उनकी सामग्री अवांछित हैं आवश्यक हो सकता है।

7

बस एक डमी डालें।बस एक ही लाइन के साथ ~ में vimrc:

source ~/path/to/real/vimrc 

वर्क्स एक आकर्षण

संबंधित मुद्दे