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
.