Gần đây tôi đã mua chiếc máy Mac đầu tiên của mình sau một thập kỷ và đang trong quá trình định cấu hình nó. Tôi là người dùng Emacs và đã xác định tôi chỉ muốn Emacs thông thường không phải Aquamac để tôi có thể sử dụng cấu hình hiện tại của mình từ các hệ điều hành khác. Tôi đã thử làm theo rất nhiều cách tôi đã tìm thấy trên mạng (như cái này , cái này và cái này từ trang web mà tôi đã tải xuống Emacs ), và đã thử kết hợp các mảnh theo bất kỳ cách nào, nhưng chưa bao giờ đưa mọi thứ vào trạng thái thậm chí tiếp cận những gì tôi đã từng / hy vọng:
- Một daemon Emacs bắt đầu chạy hoặc khi khởi động hoặc ngay khi tôi cần ; hoặc là tốt. Bất kỳ khung Emacs mới nào cũng được hỗ trợ bởi cùng một máy chủ.
- Khi tôi mở tệp văn bản từ Finder, tệp sẽ mở trong Emacs, trong khung đồ họa hiện có nếu có thể.
- Nếu tôi chạy Emacs.app, hệ thống sẽ sử dụng lại trình nền emacs đang chạy trong nền thay vì bắt đầu một phiên bản mới và mở một cửa sổ mới trên đó. ( mũ chóp )
- Khi tôi chạy Emacs từ một thiết bị đầu cuối, thiết bị đầu cuối sẽ tiến hành công việc của nó mà không cần đợi tôi kết thúc với Emacs (trừ khi tôi sử dụng '-nw')
- AFAIK không có điểm nào trong các hoạt động được mô tả ở trên nếu Emacs kết thúc ở trạng thái ("chế độ chỉnh sửa máy chủ?") Trong đó chờ tôi gõ
C-x #
, mặc dù tôi không hiểu sâu về thao tác này. - (Tôi sẽ coi đây là một phần thưởng) Có một số cách để tôi gọi Emacs từ một thiết bị đầu cuối để Emacs sử dụng lại một khung hiện có nếu có thể.
Làm thế nào tôi có thể cấu hình Emacs để hành xử như thế này?
Tôi đặc biệt bối rối khi yêu cầu Finder mở mọi thứ trong Emacs theo cách tôi muốn (# 2), vì các hướng dẫn mà tôi tìm thấy thường tạo ra một số bí danh, Applescripts, bash script, v.v. và tôi không chắc mà tôi muốn nói với Finder để sử dụng để mở tệp văn bản.
Cảm ơn!
A. @lawlist hỏi: "Có phải khung mới được mở theo mặc định khi bạn mở tệp mới từ thiết bị đầu cuối mặc dù đã có khung hiện có không?" Câu trả lời là nếu tôi khởi động một máy chủ khi khởi động như được mô tả ở đây , mở một khung và sau đó mở một tệp bằng cách gõ /Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
, tôi có thể lấy tệp để mở trong một khung hiện có. Nếu không có khung hiện đang mở, tôi phải sử dụng "-nc" hoặc khi tôi cố mở tệp thì không có gì xảy ra.
B. @lawlist hỏi: "Bạn có muốn trình nền chạy khi đăng nhập không, hoặc sẽ đủ để tải Emacs thủ công sau khi đăng nhập?" Chạy bằng tay sẽ ổn thôi.
M-x server-start
sẽ tự khởi động máy chủ để emacsclient
có thể giao tiếp với nó. Tôi đã đặt (server-start)
trong init.el
tệp của mình thay vì sử dụng trình nền khi đăng nhập - tuy nhiên, nhiều người thích tùy chọn đăng nhập daemon. Và tất nhiên, .emacs
tập tin sẽ là một nơi thích hợp cho (server-start)
.
ns-find-file
- được kích hoạt tự động khi một tệp được liên kết với Emacs.app. Chức năng tệp chặn của tôi trong các liên kết ở trên cũng sửa đổi ns-find-file
nếu đó là điều mà bạn quan tâm. Tất nhiên, bạn cần xây dựng Emacs --with-ns
.