Forçando o emacs a rodar com '-nw' quando chamado do terminal

3

note : Essa pergunta pode ter sido feita antes (acho que a vi em algum lugar), mas uma pesquisa rápida não revelou nada.

Eu gostaria de dizer a diferença quando um comando é executado a partir de um shell.

O Emacs pode ser inicializado com o sinal -nw para desativar a janela gui , e eu quero que este seja o comportamento padrão. No entanto, se emacs for executado em um ambiente que não seja de shell, por exemplo, do Open With no seu filemanager , uma área de trabalho configurada como atalho ou até mesmo de bashrun ), ele não deve ser chamado com o sinalizador -nw .

update : Esta deve ser uma mudança global, executando sudo emacs no Terminal não deve abrir de repente um gui. Onde faço essas alterações?

    
por Stefan 03.11.2010 / 18:26

2 respostas

7

Eu acho que você quer determinar se um comando é executado em um terminal .

if [ -t 2 ]; then
  # Standard error is a terminal
  emacs -nw "$@"
elif [ -n "$DISPLAY" ]; then
  # An X display is available
  xterm -e emacs -nw "$@"
else
  # We have nothing
  emacs --daemon "$@"
fi

Se você quiser que isso sempre aconteça quando você executar o Emacs, coloque-o em um script e invoque esse script. Você pode chamar o script /usr/local/bin/emacs (assumindo o Linux) se você quiser que ele seja chamado de emacs e chamado de preferência para o executável "real" emacs em /usr/bin .

Observe que para editar arquivos como root , você deve usar sudoedit (benefits: o editor é executado como você para que você obtenha todas as suas configurações; o arquivo editado é colocado atomicamente quando você termina a edição, reduzindo a chance de um acidente). Você também pode editar arquivos como root diretamente dentro do Emacs abrindo /sudo::/path/to/file .

    
por 03.11.2010 / 20:01
9

Diga isso:

$ echo "alias emacs='emacs -nw'" >> ~/.bashrc

Efetue logout e, em seguida, faça o login novamente e você terá o comportamento que está solicitando. O alias aplica-se apenas ao Bash.

    
por 03.11.2010 / 18:59

Tags