Если вы запускаете свой первый сеанс Vim с аргументом --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>'
Статусная строка должна отражать изменение значения.
Как говорится в вашем последнем комментарии , если ваш экземпляр Vim не находится в обычном режиме, предыдущая команда не будет работать должным образом. Там может быть проще, но вот 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")'