alias ou função para o comando emacs?

2

Então, eu estou no meu primeiro dia no meu novo emprego, e no servidor que usamos, o emacs padrão é baseado no X-windows. Eu prefiro usá-lo no bom e velho terminal e gostaria de poder fazer com que o comando emacs foo.txtseja lido como emacs --no-window-system foo.txt.

Tentei fazer isso adicionando a linha function emacs() { emacs --no-window-system "$@" ;}ao meu ~/.profilee, em seguida source ~/.profile, executei , mas o sistema não responde 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.

Frank Harris
fonte

Respostas:

1

Isso seria melhor como um apelido.

Coloque isso no seu .profile ou .bashrc

alias emacs='emacs -nw'
Nifle
fonte
Obrigado, infelizmente também não estou obtendo bons resultados com isso. Eu tentei isso no .profile e no .bashrc, executei source .profileou source .bashrcantes e depois executei emacs foo.txt, mas nas duas vezes nada acontece até eu digitar Ctrl + D, quando ele retorna ao prompt.
Frank Harris
2
@FrankHarris O que acontece quando você apenas emacs -nw foo.txt? Eu nunca vi uma compilação do Emacs que era apenas X, mas suponho que isso seja teoricamente possível.
Aaron Miller
@AaronMiller, o problema foi resolvido após o logout e o logon novamente. Fiquei com a impressão de que source .profileconseguiria a mesma coisa, por isso não sei por que não funcionou! Pode ter sido um erro completamente não relacionado, mas o ponto é que funciona agora. Obrigado pela ajuda!
Frank Harris
@AaronMiller Quero votar em você, mas sou novo e, aparentemente, preciso de mais reputação. Vou tentar me lembrar de fazê-lo quando chegar; você tem sido uma grande ajuda.
Frank Harris
@FrankHarris Obrigado, e não se preocupe! Feliz por ajudar.
Aaron Miller
0

Acredito que o problema com sua solução original é que a chamada para emacsdentro de sua emacsfunção é uma chamada recursiva para a emacsfunção. Você pode chamar o emacs programa em vez de sua emacs função usando o bash embutido command.

function emacs() { command emacs --no-window-system "$@" ;}

Eu tenho o desejo oposto: quero colocar automaticamente o emacs em segundo plano quando estiver executando em um sistema de janelas. Eu tenho o seguinte no meu .bashrc:

if [ -n "$DISPLAY" ]; then
    function emacs() { (command emacs "$@" &) }
fi
David Hull
fonte