विम में रनटाइमपथ को एक चर के रूप में सेट क्यों नहीं किया जा सकता है


4

मैंने निर्दिष्ट किया है .vimrc तथा .vim स्थान।

मेरे में vimrc फ़ाइल , मैंने ढूंढा runtimepath एक के रूप में सेट किया जा सकता है निरपेक्ष मूल्य को यह पसंद है:

set rtp+=~/.marslo/.vim/bundle/vundle

पर यह नही सकता के रूप में स्थापित किया जाना चाहिए परिवर्तनशील , को यह पसंद है:

let vudpath = expand(~/.marslo/.vim/bundle/vundle)
set rtp+=vudpath

यही कारण है कि? क्या कोई रास्ता बन सकता है runtimepath परिवर्तनशील के रूप में सेट किया जाए?

जवाबों:


7

जैसा कि रोमेल ने कहा, आपके पास है :let &option। लेकिन आपके मामले में, जैसा कि आप पथों की सूची में एक पथ जोड़ना चाहते हैं:

exe 'set rtp+=' . expand('~/.marslo/.vim/bundle/vundle')

यदि यह अभी तक मौजूद नहीं है, तो केवल पथ जोड़ेगा;

या के उपयोग पर ध्यान दें .= के बजाय ऑपरेटर += एक)

let &rtp .= ','.expand('~/.marslo/.vim/bundle/vundle')

हालाँकि इस बार अगर यह आपके & rtp में पहले से मौजूद है, तो इसे फिर से जोड़ा जाएगा। जैसे, उपयोग करना पसंद करते हैं :execute + :set आपके विशिष्ट मामले में।


आप कमाल के है!!! मेरे लिए सभी तरीके दो काम हैं !!! आपका बहुत बहुत धन्यवाद!
Marslo

3
यहाँ जो नहीं कहा जा रहा है, वह यह है कि आपकी समस्या का "लेट" से कोई लेना-देना नहीं था। अधिकांश पूर्व कमांड वैरिएबल नामों का विस्तार नहीं करते हैं, यानी वे एक अभिव्यक्ति नहीं लेते हैं। "सेट" उन कमांडों में से एक नहीं है जो एक्सप्रेशन (चर) का विस्तार करता है।
Ben

0

आपके पास दो विकल्प हैं:

execute "set option=" . expression
let &option = expression

अगर द let &option = expression, क्यूं कर कॉल vundle # start (bud) ठीक काम करता है?
Marslo

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