Emacs: Терминал против оболочки?
Я читал, как использовать оболочку внутри EMACS, так как я нашел концепцию терминала, которая является абстракцией для старых физических устройств, взаимодействующих с оболочкой.
Но, в настоящее время, я действительно не могу понять, какие преимущества имеют его использование, поэтому можете ли вы указать мне пару ситуаций или примеров, где следует использовать его вместо оболочки в Emacs?
Ответы
Ответ 1
Запуск терминального буфера намного ближе к фактическому терминалу. Вот несколько отличий:
- Режим оболочки обеспечивает очень ограниченную эмуляцию терминала. Программы, которые используют возможности полноэкранного вывода терминала (например,
less
, mtr
, mutt
, top
), не будут работать должным образом. Терминальный режим обычно обрабатывает их без каких-либо проблем.
- В режиме оболочки emacs обеспечивает выполнение табуляции. В терминальном режиме программа оболочки или командной строки предоставляет ее сами.
- Режим оболочки буферизует ввод и отправляет его процессу в новой строке. Режим терминала немедленно отправляет символы в выполняемый процесс.
- Режим оболочки работает как обычный буфер с обычными привязками клавиш emacs. Терминальный режим не перехватывает большинство управляющих символов, если вы явно не помещаете его в линейный режим.
Ответ 2
Оболочка похожа на другой буфер emacs, поэтому в ней работают одни и те же ключи, которые работают в других буферах. Это не относится к терминалу.
Ответ 3
Вы можете запустить консольные программы, которые очищают экран, например mc
в терминале.
Ответ 4
Физические терминалы давно устарели, но эмуляторы терминалов, которые их заменили, довольно важны, и я бы предположил, что большинство оболочек вне Emacs запускаются внутри одного, поэтому не таинственная концепция использовать один в Emacs тоже.
Это касается только вашего вопроса, но TTY demystified - отличная статья, которая может показаться вам полезной.