यदि आप तर्क के साथ अपना पहला विम सत्र शुरू करते हैं --servername VIM
:
$ vim --servername VIM
फिर आप किसी अन्य शेल से किसी भी कमांड को तर्क के साथ भेज सकते हैं --remote-send
।
उदाहरण के लिए, यदि आप कुछ वैरिएबल के मान को प्रदर्शित करने के लिए अपने स्टेटसलाइन का उपयोग करते हैं g:myvar
, और आपके vimrc में निम्न लाइनें हैं:
let g:myvar = "foo"
set stl+=%{g:myvar}
फिर आप :let g:myvar = "bar"
दूसरे शेल से इसका मूल्य ( ) बदल सकते हैं :
$ vim --remote-send ':let g:myvar = "bar"<cr>'
स्टेटसलाइन को मूल्य के परिवर्तन को प्रतिबिंबित करना चाहिए।
जैसा कि आपकी अंतिम टिप्पणी कहती है, यदि आपका विम उदाहरण सामान्य मोड में नहीं है, तो पिछली कमांड अपेक्षा के अनुरूप काम नहीं करेगी। वहाँ सरल हो सकता है, लेकिन यहाँ 2 संभव समाधान हैं:
1) <esc>
सामान्य मोड में होने के लिए कुंजी जोड़ें
2) एक अभिव्यक्ति का मूल्यांकन करने के --remote-expr
बजाय तर्क का उपयोग करें --remote-send
और एक छोटा सहायक फ़ंक्शन लिखें, जिसका कोड आपके वैरिएबल को नया मान प्रदान करेगा
पहला उपाय:
$ vim --remote-send '<esc>:let g:myvar = "bar"<cr>'
दूसरा उपाय:
अपने vimrc में निम्नलिखित फ़ंक्शन को परिभाषित करें:
function! Myfunc(value)
let g:myvar = a:value
endfunction
फिर, अपने खोल में:
$ vim --remote-expr 'Myfunc("bar")'