Làm cách nào để tự khởi động shell sau khi bắt đầu emacs


8

Một trong những lý do chính của tôi khi sử dụng Emacs là để có được một môi trường mạnh mẽ sau khi sshvào một máy từ xa. Điều đầu tiên tôi làm sau khi bắt đầu Emacs là chạy M-x shellđể lấy một dòng lệnh. Vì phải mất một chút thời gian để Emacs khởi động, sẽ rất thuận tiện khi có tùy chọn yêu cầu Emacs khởi động shell khi tôi chạy nó, sau khi phân tích tệp khởi tạo của tôi (tôi có một số hook shell được thiết lập để làm một việc khác ). Lý tưởng nhất là tôi muốn có thể chạy nó với một tùy chọn bổ sung vì vậy tôi sẽ không phải thêm bất cứ thứ gì cụ thể vào tệp khởi tạo của mình trên các máy từ xa (tôi có thể thiết lập bashbí danh nếu tôi muốn). Một cái gì đó như thế này:

emacs afile1 afile2 -startShell

Trong thực tế, cho rằng việc thiết lập các kết nối an toàn mất khoảng 30 giây, những gì tôi thực sự muốn làm là xây dựng "bắt đầu một vỏ" vào sshlệnh riêng của mình, sử dụng sshvới -tđể bắt đầu một chương trình dựa trên màn hình .

ssh -t me@remote emacs afile1 afile2 -startShell

Tôi đã xem tài liệu về đối số dòng lệnh cho Emacs nhưng tôi vẫn bắt đầu sử dụng Emacs và Lisp và tùy chỉnh và không rõ ràng ngay lập tức làm thế nào để tiến hành đối phó với các đối số dòng lệnh. Tôi sẽ đi đâu để tới đó?

( Câu hỏi liên quaneshell được đề cập bởi người dùng @Name.)


nó có thể :). ssh -t me@remote 'emacs -f shell'hoạt động như một giấc mơ.
TooTone

@Name cảm ơn tôi đã thử nó, nhưng tôi đã nói rằng bạn có thể thêm nhận xét của mình làm câu trả lời và tôi chấp nhận vì nó giải quyết vấn đề của tôi. Hoặc có lẽ câu hỏi của tôi nên được đánh dấu là một bản sao. Dù sao thì cũng không nên để nó mở.
TooTone

Câu trả lời:


4

Bạn có thể sử dụng khóa -f để gọi hàm emacs từ dòng lệnh.

Nhận xét cho thấy cách thực hiện điều này qua ssh bằng cách sử dụng -t và đó là một cách. Tuy nhiên, nó có một số nhược điểm. Cái chính là emacs đang chạy của bạn từ xa, điều đó có nghĩa là bạn sẽ cần phải có tất cả các công cụ cấu hình emacs của mình trên hệ thống từ xa cũng như duy trì một số cục bộ cho phiên bản cục bộ của bạn. Bạn cũng mất một số tính linh hoạt nếu bạn muốn làm công cụ cục bộ và từ xa và có thể di chuyển vào giữa.

Một cách khác là chạy emacs cục bộ của bạn và khởi động shell từ dòng lệnh và sau đó ssh từ shell đó. Bạn có thể sử dụng tramp over ssh để chỉnh sửa tập tin vv và sau đó sử dụng shell để chạy phiên ssh tương tác.

emacs -f shell

Khi bạn cảm thấy thoải mái với điều đó, bạn có thể xem xét một số gói liên quan đến ssh ngoài kia cho emacs. Sau đó, có thể gọi một hàm từ một trong các gói đó từ dòng lệnh để tự động hóa việc tạo phiên ssh. Bạn có thể cần phải viết một hàm bao bọc đơn giản để làm điều này dễ dàng hơn. Sau đó, bạn sẽ chỉ có 1 thiết lập cấu hình emacs để quản lý và bạn có được sự linh hoạt bổ sung.


1
Bạn nói đúng rằng nhược điểm chính của việc sử dụng ssh -t ... 'emacs -f shell'trực tiếp từ thiết bị đầu cuối là tôi phải cập nhật cấu hình emacs riêng biệt, từ xa. Tôi đã chơi xung quanh với người lang thang và bây giờ tôi đã giảm thời gian khởi động xuống mức chấp nhận được với việc chia sẻ kết nối ssh, nó có thể sử dụng được và cực kỳ hữu ích, ví dụ như scphoàn thành tên tệp từ xa. Tuy nhiên, đây vẫn không phải là một giải pháp liền mạch để chạy trong một phiên duy nhất và hiện tại nhược điểm của nó lớn hơn các ưu điểm của nó.
TooTone 17/2/2015

Các tùy chọn ssh khác có thể giúp bao gồm mức độ nén ssh phù hợp. Các bất tiện phiên duy nhất bạn đang gặp phải là gì?
Tim X

Tôi đã gặp sự cố ngày hôm qua khi một tệp tôi đã mở ở chế độ chỉ đọc và cả khi tôi thực hiện sshlời nhắc hiển thị xấu với một số ^ký tự có tiền tố. Hôm nay tôi đã thử lại và chỉnh sửa các tập tin là liền mạch, nhưng lời nhắc vẫn còn bị rối. Ngoài ra nghi ngờ của tôi là không phải mọi thứ sẽ liền mạch. Ví dụ: chạy agđặt ra một quy trình trên máy từ xa nhưng tôi đã ít may mắn hơn khi thực hiện rgrep. Có vẻ như điều này đáng để xem xét thêm ( github.com/ieure/ssh-el trên melpa có vẻ thú vị) khi tôi có thời gian - và đăng lại bất kỳ qs nào lên trang web này; cảm ơn bạn đã nâng nó lên
TooTone

Tùy thuộc vào trường hợp sử dụng của bạn, việc sử dụng tramp chính xác có thể là một thách thức, nhưng nó đáng để nỗ lực. Dấu nhắc lộn xộn có vẻ như bạn có thể có các ký tự thoát màu ansi. Có lẽ gói ansi-color cần tải. Ngoài ra, hãy thử chỉ sử dụng tramp mà không có bất kỳ cấu hình nào - mặc định thường được đặt trên. Đôi khi mạnh mẽ, nhưng phức tạp để cấu hình.
Tim X
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.