Apa saja cara meluncurkan shell dari dalam emacs dan apa saja beragam propertinya?

25

Saya tahu setidaknya empat kemungkinan:

  • eshell
  • istilah
  • istilah ansi
  • kulit

Apa daftar lengkap alat bawaan emacs untuk meluncurkan shell, dan apa manfaat dan kelemahan yang mereka tawarkan?

Trevoke
sumber
1
ini adalah contoh menarik dari daftar pertanyaan besar. Tampaknya beberapa orang di situs (termasuk kami berdua) menyukai pertanyaan semacam ini, sedangkan yang lain benar-benar tidak. Hasilnya bisa sangat bervariasi tergantung pada respons moderator. Saya sudah memulai diskusi tentang meta tentang hal itu, merujuk pertanyaan ini sebagai contoh meta.emacs.stackexchange.com/questions/305/…
Joe Corneli

Jawaban:

31

M-x shelladalah antarmuka standar untuk shell OS. Di linux, ia memanggil bash (atau apa pun default Anda), di Windows, ia memanggil cmd.exe. M-x shelladalah yang paling sering digunakan.

M-x eshelladalah shell yang ditulis dalam emacs lisp seluruhnya. Ini memiliki sintaks yang mirip dengan bash, tetapi terintegrasi dengan elisp. mis. Anda dapat eval kode elisp di sana. Eshell sangat berguna pada Windows ketika Anda tidak menginstal cygwin dll.

M-x termdan M-x ansi-termemulasi terminal, seperti gnome-terminal, xterm, dll. Perbedaan utama M-x shelladalah bahwa, di eshellatau shell, kunci masih merupakan kunci emacs, tetapi di term, kunci emacs tidak berfungsi. Tetapi, keuntungannya adalah Anda dapat menjalankan ssh, vim, atau perintah apa pun yang berbasis teks-UI, yang tidak akan berfungsi di M-x eshellatau M-x shell.

termdan ansi-termdulunya adalah paket yang berbeda, tetapi sekarang mereka adalah 2 perintah berbeda dalam file term yang sama.el. Saya belum banyak menggunakannya. Anda dapat menemukan jawaban yang lebih terperinci tentang ini di emacs wiki .

Ada beberapa informasi lebih lanjut di blog saya .

Xah Lee
sumber
1
"Sekarang ada 2 perintah berbeda file yang sama". Mungkin ada satu atau dua kata yang hilang di sana.
Faheem Mitha
2
Jawaban yang bagus. Tautan ke halaman wiki yang disebutkan akan menyenangkan juga.
Malabarba
3
"Shell Mx adalah yang paling sering digunakan" - Saya ingin kutipan atau beberapa data untuk mendukung itu, karena saya sama sekali tidak yakin bahwa itu benar. Juga, itu tidak menambahkan apa pun yang substantif untuk jawabannya. Jawaban yang bagus sebaliknya.
shosti
2
shosti, saya tidak punya statistik sulit. menurut header file, shell adalah 1988. eshell adalah 1999. term.el juga 1988. eshell sebagian besar digunakan oleh peretas elisp, jadi itu jauh lebih sedikit daripada pengguna emacs. Itu meninggalkan shell vs istilah. Saya pikir kita dapat membandingkan penyebutan mereka dalam buku-buku emacs, misal 3 atau lebih yang lama dari O'Reilly. Atau perbandingan Google ... tetapi hanya dari pengalaman berkeliaran di komunitas emacs, saya pikir istilah / istilah-ansi jauh lebih sedikit digunakan.
Xah Lee