Em uma concha regular:
$ env | grep -i vim
EDITOR=vim
Depois de usar :shell
$ env | grep -i vim
EDITOR=vim
VIMRUNTIME=/usr/share/vim/vim80
VIM=/usr/share/vim
MYVIMRC=/home/martin/.vim/vimrc
Portanto, parece que Vim define os VIMRUNTIME
, VIM
e MYVIMRC
variáveis de ambiente. Dessas, me VIM
parece a mais confiável (você pode não ter um tempo de execução do vimrc ou mesmo do vim).
Você também pode definir suas próprias variáveis de ambiente:
:let $HELLO = "test"
:shell
$ echo $HELLO
test
Isso é especialmente útil para comunicar informações sobre o buffer que você está editando; por exemplo:
:let $VIM_FILETYPE = &filetype
:let $VIM_FILENAME = expand('%:p')
Aparecerá algo como:
VIM_FILETYPE=go
VIM_FILENAME=/home/martin/a.go