Ini memang pertanyaan yang dangkal.
Meskipun ansi-term
mulai berperilaku dengan benar ketika saya pertama kali membukanya, tampaknya menurun ke mode 'dapat diedit' setelah beberapa perintah, misalnya, ketika saya lakukan C-a
(mulai dari baris) diikuti oleh C-k
(garis membunuh), itu menghapus seluruh prompt.
Untuk kewarasan estetika saya, apakah ada cara untuk membuat prompt dan output sebelumnya tidak dapat diedit shell
? (Diperbarui untuk mengecualikan ansi-term mengingat perbedaan yang bermakna.)
Saya menggunakan zsh di Emacs 24.4; OS adalah LXDE (Ubuntu 14.04) melalui Virtual Box.
(Idealnya saya masih bisa menggerakkan kursor di sekitar ...)
C-c C-j
. Coba temukan default itu atau beralih ke mode char denganC-c C-k
.shell-mode
/term-mode
masing-masing tidak berasalcomint-mode
, Anda mengajukan dua pertanyaan yang sangat berbeda pada saat yang sama di sini. Pikiran membaginya menjadi dua pertanyaan terpisah?Jawaban:
comint mode -derived (seperti
shell
,ielm
, ...) fungsi pendukung filter, potongan berikut membuat output dan cepat read-only:Adapun
ansi-term
(yang bukan berasal dari comint ), ia memiliki dua mode operasi,char mode
yang tetap jujur pada binding dari shell dan perangkat lunak yang berjalan di dalamnya mungkin danline mode
yang memungkinkan Anda untuk mengedit buffer sesuka Anda. Anda biasanya harus tetap dichar mode
(terikat keC-c C-k
) dan sesekali beralih keline mode
(terikat keC-c C-j
) untuk mengedit output perintah.sumber
Saat bercampur
term
denganshell-mode
, variabelcomint-use-prompt-regexp
tampaknya sesekali diatur. Ini menyebabkan perilaku sedikit seperti yang Anda jelaskan: di shell-mode C-a akan pergi ke awal baris, C-kakan membunuh seluruh baris, termasuk prompt.Sebuah memperbaiki sederhana adalah untuk me-reset
comint-use-prompt-regexp
dengan C-: (setq comint-use-prompt-regexp nil), memaksa modus shell untuk properti teks penggunaan yang kunci gerakan kursor sadar.Ada deskripsi cara kerjanya di manual GNU Emacs di sini: https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Prompts.html
sumber
Coba ubahsuaikan variabel
comint-prompt-read-only
ket
.Ini akan mempengaruhi
shell-mode
dan yang lain berasal daricomint-mode
, tetapi tidakterm-mode
.sumber