Recentemente, fiquei farto de alternar constantemente entre o Windows e o Linux e instalei o gVim e o MSYS2 no Windows 7. Depois de algumas horas de pesquisa, eu tenho um .vimrc que faz !command
, make
, etc. use o shell e utilitários que vêm com MSYS2 em vez de cmd.exe (localizado abaixo). No entanto, sempre que executo um comando shell, o shell é iniciado no meu diretório home, em vez do diretório de trabalho atual do vim. Eu sei que isso é culpa do sinalizador do shell --login
, mas se eu removê-lo o shell reclama que ele não pode encontrar nenhum comando: /usr/bin/bash: ls: command not found
. Eu presumo que isso seja porque o PATH não está definido.
É possível evitar que o bash comece em casa? Ou, mais possivelmente, como modifico o PATH do gVim para herdar do PATH do MSYS?
if has('win32') || has('win64')
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after
set shell=C:\msys64\usr\bin\bash
set shellcmdflags=--login\ -c
set shellslash
endif