Каково различие между оболочкой, eshell, и термином в Emacs?

Вы выходили из системы и входили к причине в свой обновленный .bashrc файл входа в систему, который будет перечитан? В противном случае среда Вашей текущей сессии не была обновлена.

63
09.12.2013, 07:49
2 ответа

shell является самым старым из этих 3 вариантов. Это использует Emacs comint-mode выполнять подоболочку (например. bash). В этом режиме Вы используете Emacs для редактирования командной строки. Подпроцесс не видит входа, пока Вы не нажимаете Enter. Emacs действует как простой терминал. Это поддерживает цветовые коды, но не вещи как перемещение курсора, таким образом, Вы не можете запустить основанные на проклятиях приложения.

term эмулятор терминала, записанный в Lisp Emacs. В этом режиме клавиши, которые Вы нажимаете, отправляются непосредственно в подпроцесс; Вы используете любые возможности редактирования строки подарки оболочки, не Emacs. Это также позволяет Вам запускать программы, которые используют усовершенствованные терминальные возможности как перемещение курсора (например, Вы могли работать nano или less в Emacs).

eshell оболочка, реализованная непосредственно в Lisp Emacs. Вы не работаете bash или любая другая оболочка как подпроцесс. В результате синтаксис является не совсем тем же как bash или sh. Это позволяет вещи как перенаправление вывода процесса непосредственно к буферу Emacs (попытка echo hello >#<buffer results>).

62
27.01.2020, 19:32

В дополнение к вышеупомянутым предметам драйвер или другая программа может кэшировать данные с устройства. На устройстве чтения-записи, таком как жесткий диск или большой диск, данные, записанные на устройство, возможно, еще не были записаны. Файловые системы ведения журнала также могут потребовать очистки журнала, прежде чем он перестанет видеть устройство. Тогда у вас есть файловые системы, которые перекрывают другие файловые системы, такие как cryptfs, которые должны знать, когда базовая файловая система больше не доступна.

Для устройства, доступного только для чтения, это имеет меньший смысл, но все равно применимо.

-121--32269-

Это удобный сценарий, который загружает последнюю версию firefox и создает пакет slackware. https://gist.github.com/ruario/9672798

-121--167419-

Согласно Xahlee page :

shell является стандартным интерфейсом emacs интерфейса командной строки операционной системы.

термин (ansi-термин в значительной степени совпадает с термином сегодня. Они были разными пакетами, но теперь оба определены в term.el) является эмулятором терминала. Он ведет себя как выделенное терминальное приложение, например {xterm, gnome-terminal, puTTY}. Он совместим с большим количеством приложений оболочки, чем интерфейс оболочки emacs, но стандартные клавиши emacs, такие как перемещение курсора, здесь не работают (потому что он эмулирует терминал.)

eshell является оболочкой, написанной полностью в emacs lisp. Примечание: это не эмулятор bash. Эшелл - раковина сама по себе, но похожая на баш или другие раковины.

Что следует использовать?

Это зависит от ваших предпочтений.

shell подходит для общего использования классических/стандартных команд unix shell, таких как {grep, du, ls, sort, cat, head, tail, uname,...}.

term & ansi-term хороши, если вы хотите запустить такие элементы, как ssh или другой интерактивный интерфейс командной строки (например, {python, ruby, lisp} shell), или текстовое приложение GUI, такое как {vim, synaptic,...}.

eshell хорош особенно в Microsoft Windows, где bash не установлен, или, если вы программист emacs lisp, потому что eshell имеет прямой доступ к emacs lisp.

20
27.01.2020, 19:32

Теги

Похожие вопросы