Jest jakiś prosty sposób na rozwiązanie tego problemu w ogóle, że nie ma nic wspólnego z emacs na wszystkich i będzie pracować dla każdego programu, który może wybrać między pracą w konsoli vs X:
unset DISPLAY
Oczywiście możesz nie chcieć umieścić tego w pliku konfiguracyjnym, aby zastosować go globalnie do wszystkich sesji powłoki, więc jeśli chcesz, aby był stosowany tylko dla emacs, to albo wywołaj go z wiersza poleceń:
DISPLAY= emacs
uwaga przestrzeń !!! jeśli pozostawić przestrzeń na zewnątrz oznacza, że jesteś ustawienie wyświetlacza, emacs zamiast ustawiania zobrazowania nic ... To polecenie jest skrótem dla:
DISPLAY=; emacs
więc albo użyć powyższego z linii poleceń (ów) lub umieścić, że w skrypcie otoki, że będzie wyglądać mniej więcej tak:
#!/bin/bash
unset DISPLAY
exec emacs
polecam exec tam, ponieważ będzie ona zastąpić skrypt otoki z emacs; Aby zobaczyć różnicę między nimi można uruchomić:
pstree -p
Z jakiego systemu operacyjnego korzystasz? Wiele dystrybucji Linuksa ma pakiet emacs-nox lub coś podobnego o tej samej nazwie. Jest to realizowane bez pomocy graficznej, więc zawsze będzie działać w terminalu. – KeithB
Jestem na Ubuntu 10.10, jeśli to pomaga. – templatetypedef
Co ciekawe, w systemie Mac OSX emacs zawsze oznacza dla mnie emacs -nw. –