Does neovim set any environment variables that would let me detect from bash that the terminal is neovim? I want to change the behavior of my .bashrc
if neovim is the terminal.
2 Answers
I compared the output of running env
in a standard terminal to the output when running it within Neovim, and it looks like these variables are new:
VIMRUNTIME=/usr/local/Cellar/neovim/HEAD/share/nvim/runtime
VIM=/usr/local/Cellar/neovim/HEAD/share/nvim
NVIM_LISTEN_ADDRESS=/var/folders/_8/sy7jjpw55mbgn2prml0fbsgc0000gn/T/nvimaLHjPR/0
(The vim
I have also has $VIM
and $VIMRUNTIME
so their mere presence doesn't indicate Neovim vs Vim...)
Aside from alxndr's example, you can set one yourself with:
:let $IN_NEOVIM = "yes"
:terminal
$ env | grep NEOVIM
IN_NEOVIM=yes
This is especially useful as a simple way to pass information to the shell; for example:
:let $NEOVIM_FILETYPE = &filetype
:terminal
$ env | grep NEOVIM
NEOVIM_FILETYPE=python