İlk Vim oturumunuzu şu argümanla başlatırsanız --servername VIM
:
$ vim --servername VIM
bağımsız değişken ile herhangi bir kabuktan herhangi bir komut gönderebilirsiniz --remote-send
.
Örneğin, bazı değişkenin değerini görüntülemek için durum satırınızı kullanırsanız ve vimrc'nizde g:myvar
aşağıdaki satırlar varsa:
let g:myvar = "foo"
set stl+=%{g:myvar}
Ardından, değerini ( :let g:myvar = "bar"
) başka bir kabuktan değiştirebilirsiniz:
$ vim --remote-send ':let g:myvar = "bar"<cr>'
Durum çizgisi, değerin değişimini yansıtmalıdır.
Son yorumunuzun söylediği gibi, Vim örneğiniz normal modda değilse, önceki komut beklendiği gibi çalışmaz. Daha basit olabilir, ancak işte 2 olası çözüm:
1) <esc>
normal modda olmak için anahtar ekleyin
2) bir ifadeyi değerlendirmek ve kodu değişkeninize yeni değer atayacak küçük bir yardımcı işlev yazmak --remote-expr
yerine argümanı kullanın--remote-send
İlk çözüm:
$ vim --remote-send '<esc>:let g:myvar = "bar"<cr>'
İkinci çözüm:
Vimrc'nizde aşağıdaki işlevi tanımlayın:
function! Myfunc(value)
let g:myvar = a:value
endfunction
Ardından, kabuğunuzda:
$ vim --remote-expr 'Myfunc("bar")'