Eu acho que o motivo é claramente que gdb
usa um shell para gerar processos.
O Vim faz isso com certeza ( help !
)
:!{cmd} Execute {cmd} with the shell.
Então, quando dizemos que :!ls -l
Vim executará de fato
$ SHELL -c 'ls -l'
Eu acho que (dado que eu entendi sua configuração hackish corretamente) você pode consertá-la facilmente executando exec bash -l
em vez de exec bash
.
A razão é que exec bash
(não sendo shell de login) não alterará a variável de ambiente SHELL
, que mais tarde será usada por gdb
e vim
e apontará para seu shell de login ( tcsh
). Eles devem usar seu shell de escolha ( bash
) diretamente.
NOTA: Você pode pensar no que acontece quando você executará algum programa escrito em tcsh
. Provavelmente não se comportará como esperado.