Как запустить 'emacs' в эмуляторе терминала без отдельного окна?


16

Я хочу переключиться на Emacs из Vim, и одна вещь, которая меня удерживает, заключается в том, что Emacs открывает отдельное собственное окно при запуске под X. Могу ли я получить такое же поведение для Emacs, как и при отсутствии под X? То есть я хочу, чтобы Emacs начал сеанс в том же терминале, в котором запущен.

Дайте мне знать, если вопрос не ясен. Заранее спасибо!

Ответы:


34

Я не эксперт по emacs, но это помогло мне:

emacs -nw

7
Вы правы, потому что любопытный -nw означает сокращение --no-window-system, которое говорит emacs не использовать его интерфейс X.

@Mic: Спасибо за объяснение, таким образом, я буду помнить, что это означает
Альберто Закканьи

16

Вы можете предпочесть запуск emacs как, emacs --daemonа затем использовать emacsclient -tдля редактирования файлов. Это сохраняет Emacs загруженным в фоновом режиме, так что вы можете использовать Emacs больше как vi. Сессии редактирования начнутся немедленно, а «выход» через Cx Cc просто закроет текущее соединение. Это очень мило.


5

Несмотря на то, что на ваш вопрос ответили, я бы рискнул сказать, что это не тот способ, которым обычный пользователь будет использовать emacs. В отличие от vim, emacs обычно имеет более длительное время запуска и в любом случае имеет тенденцию работать все время с несколькими открытыми буферами. Поэтому, когда вы хотите что-то сделать с emacs в терминале, вы вызываете emacsclient -nw(при условии, что сервер emacs запущен). Посмотрите, как начать использовать EmacsClient для деталей.


2

Если вы используете bash, вы всегда можете добавить следующее в ваш .bashrc

псевдоним emacs = "emacs -nw"

Это спасло меня от набора текста (и проклятия, когда я забываю печатать переключатели).


1

Комбинируя приведенные выше ответы Дика Кенни и Альберто Закканьи, вы получаете следующую конфигурацию, в которой я использую .bashrc:

alias emacs='emacsclient -nw -c -a ""'

Это попытается подключиться к работающему демону emacs. Если ни один из них не запущен, он запустит новый, а затем подключится с использованием текущего окна терминала.

Из документов:

-a EDITOR, --alternate-editor=EDITOR
        Editor to fallback to if the server is not running
        If EDITOR is the empty string, start Emacs in daemon
        mode and try connecting again

-nw, -t, --tty      Open a new Emacs frame on the current terminal

-c, --create-frame  Create a new frame instead of trying to 
                    use the current Emacs frame

1
Когда я пытаюсь выполнить эту команду, Emacs не запускается, вместо этого я получаю предупреждение о том, что нет сервера, к которому нужно подключиться, после чего следует гигантский дамп значений и Emacs не запускается.
Коз Росс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.