2010-07-13 14 views
7

Tôi sử dụng một daemon emacs để bảo vệ phiên emacs của tôi ngay cả khi tôi phải khởi động lại máy mà tôi chạy máy chủ X của tôi trên hoặc nếu tôi muốn truy cập cùng một phiên từ một máy khác. Điều này hoạt động rất tốt nhưng khi khôi phục lại một phiên, tôi muốn chạy "emacsclient --create-frame --no-wait" để kết nối với daemon mà không cần mở một tập tin mới. Nó sẽ không cho phép tôi đi mà không chỉ định một tên tập tin.Làm thế nào tôi có thể làm cho emacsclient chỉ cần mở một cửa sổ cho một daemon emacs hiện tại mà không cần mở một tập tin mới

Tôi đã thử sử dụng --để thực thi một chức năng thay vì mở tệp nhưng cửa sổ sẽ biến mất khi quá trình đánh giá hoàn tất.

(Emacs 23,1 qua backports trên Debian GNU/Linux 5.0.)

+0

Tôi nghĩ rằng câu hỏi này là phù hợp hơn cho http://superuser.com/ –

+0

Cảm ơn câu trả lời toàn diện, đặc biệt là không chỉ ra rằng tôi đã chỉ là không biết gì! Có vẻ như tôi đã nhầm lẫn khi nói rằng "emacsclient --create-frame --no-wait" không hoạt động do thiếu tên tệp. Tôi phải có bản thân mình một hỗn hợp của emacs và các phiên bản emacsclient (emacsclient từ v22 không xuất hiện để yêu cầu tên tập tin nhưng nó có ý nghĩa trong phiên bản đó.) –

Trả lời

11

Từ trợ giúp được cung cấp bởi emacsclient, bạn có một vài tùy chọn. Đầu tiên, là cái đã đề cập là emacsclient -c. Điều đó sẽ cố gắng tạo một khung liên kết với daemon emacs. Ưu điểm của điều này là nếu DISPLAY không được thiết lập, nó sẽ mở các emacs trong terminal.

Điều này đưa chúng ta đến tùy chọn tốt nhất tiếp theo (đặc biệt là nếu bạn đang đăng nhập từ xa): emacsclient -t buộc các emacs mở trong chế độ đầu cuối ngay cả khi DISPLAY được đặt.

Cũng nên nhớ rằng bạn cũng có thể đặt hiển thị từ dòng lệnh. Tôi sử dụng thường xuyên khi đăng nhập từ xa từ VNC. Lệnh đầy đủ sẽ emacsclient -d DISPLAY -c

2

emacsclient -n -e "(make-frame)"

Cờ -n nghĩa là emacsclient không chờ đợi, và dụ emacs không phá hủy khung.

5

emacsclient -c phù hợp với tôi.

+0

Hmm. Nó cũng cho tôi. Tôi chắc chắn nó không hoạt động khi tôi thử nó trong hai lần trước nhưng bây giờ tôi không thể tái tạo nó. :( –

2

Nếu bạn đang sử dụng emacs từ dòng lệnh, bạn cũng có thể muốn xem xét emacsclient -t

Các vấn đề liên quan