Як запустити '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

alias 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.