15

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

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

5 ответов5

34

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

emacs -nw
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .