O Vim não está usando aliases do Bash

2

Eu estou tentando configurar o Vim para que eu possa compilar o código C diretamente do próprio editor:

.vimrc :

let $BASH_ENV = "$HOME/.bashrc"

autocmd FileType c map <F6> :!gcc -o "%:p:r.out" "%:." <bar> more<CR>
autocmd FileType c map <F7> :!%:p:r.out <CR>

.bash_aliases :

alias gcc="gcc -lm -ansi -Wall -g -O0 -Wwrite-strings -Wshadow -pedantic-errors -fstack-protector-all"

.bash_aliases está sendo originado de .bashrc .

Quando eu compilo qualquer coisa com F6 , o gcc alias não é usado. Como posso obter vim para usar o alias?

Esta é uma pergunta de acompanhamento da minha pergunta anterior .

    
por Jeffrey 24.09.2013 / 04:37

2 respostas

2

O recurso de alias é desativado por padrão em shells não interativos.

Coloque o seguinte no seu arquivo .bash_aliases:

shopt -s expand_aliases

(Você pode querer ter um arquivo personalizado para shells não interativos disparados de vim . Provavelmente existem muitas coisas no seu arquivo .bashrc que você não quer que aconteçam.)

    
por 24.09.2013 / 04:59
0

A maioria das shells não obtém seus arquivos rc (.shrc, .bashrc, .kshrc, .zshrc, etc.) para shells não interativos, e o Vim não invoca shells interativas para comandos:! -. Se isso acontecesse, Bad Things ™ aconteceria.

Eu recomendaria criar um script de shell real e, em seguida, chamá-lo de seu mapeamento. (E você poderia fazer seu alias de shell chamar esse script de shell também.)

    
por 24.09.2013 / 04:46

Tags