আপনি যদি যুক্তি দিয়ে আপনার প্রথম ভিম সেশনটি চালু করেন --servername VIM
:
$ vim --servername VIM
তারপরে আপনি আর্গুমেন্টের সাহায্যে অন্য কোনও শেল থেকে কোনও আদেশ পাঠাতে পারেন --remote-send
।
উদাহরণস্বরূপ, যদি আপনি কিছু ভেরিয়েবলের মান প্রদর্শন করতে আপনার স্ট্যাটাসলাইন ব্যবহার করেন এবং আপনার ভিএমআরসি-তে g:myvar
নিম্নলিখিত লাইনগুলি রয়েছে:
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>'
দ্বিতীয় সমাধান:
আপনার ভিএমআরসিতে নিম্নলিখিত ফাংশনটি সংজ্ঞায়িত করুন:
function! Myfunc(value)
let g:myvar = a:value
endfunction
তারপরে, আপনার শেলটিতে:
$ vim --remote-expr 'Myfunc("bar")'