Tất cả các cách để khởi động một lớp vỏ từ bên trong emacs và các thuộc tính khác nhau của chúng là gì?


25

Tôi biết ít nhất bốn khả năng:

  • eshell
  • kỳ hạn
  • ansi hạn
  • vỏ

Danh sách đầy đủ các công cụ tích hợp để emacs để khởi chạy shell, và những lợi ích và nhược điểm nào chúng mang lại?


1
đây là một ví dụ thú vị của một lớn-list câu hỏi. Có vẻ như một số người trên trang web (bao gồm cả hai chúng tôi) thích loại câu hỏi này, trong khi những người khác thực sự không. Các kết quả có thể thực sự thay đổi tùy thuộc vào phản ứng của người điều hành. Tôi đã bắt đầu một cuộc thảo luận về meta về nó, tham khảo câu hỏi này như một ví dụ về meta.emacs.stackexchange.com/questions/305/ trộm
Joe Corneli

Câu trả lời:


31

M-x shelllà giao diện chuẩn cho hệ điều hành. Trên linux, nó gọi bash (hoặc bất cứ thứ gì mặc định của bạn), trên Windows, nó gọi cmd.exe. M-x shelllà thường xuyên nhất được sử dụng.

M-x eshelllà một vỏ được viết bằng emacs lisp hoàn toàn. Nó có một cú pháp tương tự như bash, nhưng được tích hợp với elisp well. ví dụ bạn có thể eval elisp code ngay tại đó. Eshell đặc biệt hữu ích trên Windows khi bạn chưa cài đặt cygwin, v.v.

M-x termM-x ansi-termlà các mô phỏng đầu cuối, giống như gnome-terminal, xterm, v.v ... Sự khác biệt chính M-x shelllà, trong eshellhoặc shell, các phím vẫn là các phím emacs, nhưng trong term, các phím emacs không hoạt động. Nhưng, ưu điểm là bạn có thể chạy ssh, vim hoặc bất kỳ lệnh nào dựa trên giao diện người dùng văn bản, không hoạt động trong M-x eshellhoặc M-x shell.

termansi-termtừng là các gói khác nhau, nhưng bây giờ chúng là 2 lệnh khác nhau trong cùng một tệp term.el. Tôi đã không sử dụng chúng nhiều. Bạn có thể tìm thấy câu trả lời chi tiết hơn về vấn đề này trên wiki emacs .

Có một số thông tin trên blog của tôi .


1
"bây giờ là 2 lệnh khác nhau trong cùng một tệp". Có thể có một hoặc hai từ còn thiếu ở đó.
Faheem Mitha

2
Câu trả lời tốt. Một liên kết đến trang wiki được đề cập cũng sẽ tốt đẹp.
Malabarba

3
"Mx shell được sử dụng thường xuyên nhất" - Tôi muốn một trích dẫn hoặc một số dữ liệu để hỗ trợ điều đó, vì tôi hoàn toàn không tin rằng đó là sự thật. Ngoài ra, nó không thêm gì đáng kể vào câu trả lời. Tốt trả lời khác.
shosti

2
shosti, tôi không có số liệu thống kê cứng. theo tiêu đề tệp, shell là 1988. eshell là 1999. term.el cũng là 1988. eshell chủ yếu được sử dụng bởi các tin tặc elisp, do đó ít hơn nhiều so với người dùng emacs. Mà bỏ vỏ so với hạn. Tôi nghĩ rằng chúng ta có thể so sánh đề cập của họ trong sách emacs, ví dụ như 3 hoặc nhiều hơn từ O'Reilly. Hoặc Google so sánh ... nhưng chỉ từ kinh nghiệm quanh quẩn trong cộng đồng emacs, tôi nghĩ thuật ngữ / ansi-term ít được sử dụng hơn nhiều.
Xah Lee
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.