Это по общему признанию поверхностный вопрос.
Хотя он ansi-term
начинает работать правильно, когда я впервые открываю его, после нескольких команд он начинает переходить в «редактируемый» режим, например, когда я выполняю C-a
(начало строки), а затем C-k
(строка уничтожения), он стирает всю подсказку.
Для моего эстетического здравомыслия, есть ли способ сделать подсказки и предыдущий вывод недоступными (для shell
)? (Обновлено, чтобы исключить ансимин с учетом значимых различий.)
Я использую Zsh в Emacs 24.4; ОС - это LXDE (Ubuntu 14.04) через Virtual Box.
(В идеале я бы все еще мог перемещать курсор ...)
C-c C-j
. Попробуйте выяснить это значение по умолчанию или переключитесь в режим char с помощьюC-c C-k
.shell-mode
/term-mode
соответственно делают / не являются производнымиcomint-mode
, вы задаете два совершенно разных вопроса одновременно здесь. Можно разделить это на два отдельных вопроса?Ответы:
Comint -derived режимы (как
shell
,ielm
, ...) поддержка функции фильтра, следующий фрагмент кода делает вывод и приглашение только для чтения:Что касается
ansi-term
(который не является производным от comint ), он имеет два режима работы,char mode
которые максимально соответствуют привязкам оболочки и выполняемого в ней программного обеспечения иline mode
позволяют редактировать буфер по своему усмотрению . Обычно вы должны оставаться вchar mode
(привязанном кC-c C-k
) и иногда переключаться вline mode
(привязанном кC-c C-j
) для редактирования вывода команды.источник
При смешивании
term
сshell-mode
переменной,comint-use-prompt-regexp
кажется, время от времени устанавливается значение. Это вызывает поведение, похожее на то, что вы описали: в режиме shell C-a перейдет к началу строки, C-kуничтожит всю строку, включая приглашение.Простое исправление - сброс
comint-use-prompt-regexp
с C-: (setq comint-use-prompt-regexp nil)принудительным использованием в режиме оболочки текстовых свойств, о которых знают клавиши перемещения курсора.Описание того, как это работает, приведено в руководстве по GNU Emacs здесь: https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Prompts.html.
источник
Попробуйте настроить переменную
comint-prompt-read-only
наt
.Это повлияет
shell-mode
и на другихcomint-mode
, но не на этоterm-mode
.источник