Isso seria melhor como um alias.
Coloque isso no seu .profile ou .bashrc
alias emacs='emacs -nw'
Então, estou no meu primeiro dia no meu novo trabalho e, no servidor que usamos, o emacs padrão é baseado no X-windows. Eu prefiro muito mais usá-lo no terminal antigo e gostaria de poder fazer com que o comando emacs foo.txt
seja lido como emacs --no-window-system foo.txt
.
Eu tentei fazer isso adicionando a linha function emacs() { emacs --no-window-system "$@" ;}
ao meu ~/.profile
e, em seguida, executei source ~/.profile
, mas o sistema não está respondendo a emacs foo.txt
.
Estou fazendo isso errado? Como alternativa, eu gostaria de saber se o que eu quero fazer é completamente ao contrário, e acontece que existe uma solução muito mais simples.
Acredito que o problema com sua solução original é que a chamada para emacs
dentro de sua função emacs
é uma chamada recursiva para a função emacs
. Você pode chamar o programa emacs
em vez da sua função emacs
usando o bash builtin command
.
function emacs() { command emacs --no-window-system "$@" ;}
Eu tenho o tipo de desejo oposto: eu quero fazer o background automaticamente do emacs quando estou rodando sob um sistema de janela. Eu tenho o seguinte no meu .bashrc
:
if [ -n "$DISPLAY" ]; then
function emacs() { (command emacs "$@" &) }
fi