Eshell: Pergi ke baris prompt pada tombol tekan

8

Kadang-kadang, ketika saya menggulir ke atas di eshell, titik meninggalkan baris prompt perintah untuk tetap berada di area yang terlihat. Ketika saya kemudian memasukkan perintah, saya tidak memasukkan perintah pada prompt, tetapi penilai memasukkan teks di suatu tempat ke dalam output dari perintah yang sebelumnya disebut. Ini sangat menjengkelkan.

Bagaimana saya bisa memastikan bahwa eshell mengembalikan menunjuk ke command prompt ketika saya memasukkan char, sama seperti di shell lain?

/ edit: Ini adalah screencast dari situasi tersebut. Saya mengetik ls, lalu saya gulir ke atas untuk meninjau output, kemudian memutuskan bahwa saya ingin melakukan cd .., tetapi karena itu hanya menyisipkan perintah pada titik, ternyata menjadi sampah.

eshell-scroll-point

Geier
sumber
Saya pikir itu tidak mengganggu. Di Eshell, Anda dapat menjalankan perintah dari mana saja dan menggunakan output sebelumnya, tidak hanya setelah prompt perintah terakhir, itu jelas fitur yang sangat keren. Bagi saya, fitur ini adalah alasan utama saya menggunakan Eshell. Untuk kebagian prompt perintah terakhir, saya menggunakan M->.
xuchunyang
Apakah ada kemungkinan untuk menyediakan tangkapan layar dari kasus di mana titik meninggalkan baris perintah dan Anda ingin mengembalikan titik ke prompt perintah dengan memasukkan karakter yang sewenang-wenang? Apakah titik kiri di baris yang sama dengan prompt terakhir? Apakah Anda ingin kembali ke prompt terakhir? Bagaimana jika ada beberapa teks yang tidak lengkap pada prompt terakhir?
Nama
@ xuchunyang: Masalahnya adalah bahwa titik tersebut menjauh dari prompt ketika saya tidak menginginkannya (yaitu, ketika saya gulir ke atas, lihat screencast). Jadi intinya tetap pada prompt kecuali saya memindahkannya sendiri akan menjadi solusi 'nyata'. Sepertinya titik harus selalu berada di area yang terlihat di emacs sekalipun.
Geier

Jawaban:

5
(setq eshell-scroll-to-bottom-on-input t)

harus melakukan apa yang Anda inginkan.

xuchunyang
sumber
Ini sepertinya berhasil.
Nama
1
Yap, itu berhasil. Inilah screencast: i.imgur.com/Mjzt8j2.gif
Geier
0

Saya pikir apa yang Anda cari adalah perilaku Plan 9 Smart Shell di Emacs. Mickey Peterson meliputnya di buku terbarunya Mastering Emacs , yang melibatkan penambahan ini ke file init.el Anda:

(require 'eshell)
(require 'em-smart)
(setq eshell-where-to-jump 'begin)
(setq eshell-review-quick-commands nil)
(setq eshell-smart-space-goes-to-end t)
Pengguna Emacs
sumber
Tidak bekerja :(
Geier
Ada tiga opsi yang sudah memiliki nilai yang sama seperti yang Anda tetapkan (setidaknya di Emacs 25 yang saya gunakan), jadi Anda mungkin tidak mengaturnya lagi sekarang.
xuchunyang