.Vimrc फ़ाइल में एक चर के लिए शेल कमांड का परिणाम निकालें?


22

अपनी .vimrc फ़ाइल में, मैं अपने मामले में एक बाहरी कमांड के परिणाम को एक चर में रखना चाहूंगा:

$ echo $LANG

ताकि मेरी vimrcफ़ाइल होगी:

let language = output(!echo $LANG)
if language == 'en'
   nnoremap <somekey> <ohanotherkey!>
end if

अब तक मैं यह नहीं कर पाया कि यह कैसे करना है। मैंने पाया है कि कमांड मोड में, :read !echo $LANGमैं अपनी वर्तमान फ़ाइल में वह सामग्री डालूंगा, जिसकी मुझे तलाश है। लेकिन मैं नहीं जानता कि यह कैसे एक vimrc फ़ाइल में लिखने के लिए।

जवाबों:


22

आप इसे systemफंक्शन के साथ कर सकते हैं :

let language = system('echo $LANG')

बोनस बिंदु: यदि आपका आउटपुट एक सूची है, तो आप systemlistएक सूची वापस पाने के लिए इसके बजाय का उपयोग कर सकते हैं । जैसे

let files = systemlist('ls')
" ['bin', 'dev', ... ]

संदर्भ: :h system


13

यदि LANGएक पर्यावरण चर है तो आप बस कर सकते हैं:

let language = $LANG

या, और भी सरल:

if $LANG == 'en'
…
endif

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