2012-04-17 30 views
12

tôi luôn luôn chạy emacs như daemon nhưng khi tôi muốn làm một cái gì đó giống nhauCó cách nào để mở tệp với emacsclient (người dùng) nhưng với quyền root?

sudo emacsclient /etc/make.conf 

Tôi không thể làm điều đó bởi vì gốc được sử dụng emacs khác và tôi không thực sự muốn chạy 2 daemon hoặc chờ emacs thông thường tải cho tập tin đơn giản.

Tôi cần một số giải pháp như nhau emacsclientsudo /etc/make.conf :) để chỉnh sửa tệp hệ thống với người dùng emacs của người dùng.

Trả lời

18

thêm vào ~/.profile của bạn:

alias E="SUDO_EDITOR=\"emacsclient\" sudo -e" 

sau đó

E /etc/hosts 

Bạn sẽ có thể sử dụng sudoedit thay vì sudo -e, nhưng tôi không thể tìm thấy cựu trên máy Mac của tôi.

+2

Gọn gàng. Tôi nghĩ rằng bạn chỉ có thể thiết lập SUDO_EDITOR trong init script của bạn và trực tiếp gọi 'sudo -e' hoặc' sudoedit' trên bất cứ file nào bạn muốn. –

4

Tôi không chắc chắn về điều đó trực tiếp nhưng đây là một thủ thuật

emacsclient -e '(find-file "/sudo::/etc/passwd")' 

Sử dụng tramp và phương pháp sudo để mở /etc/passwd như root.

Bạn có thể đặt bí danh mục này và sử dụng trực tiếp từ trình bao của mình.

+0

Câu hỏi không rõ ràng, liệu máy chủ Emacs có chạy dưới dạng gốc hay không. Câu trả lời khác giả định rằng máy chủ chạy dưới dạng root. Câu trả lời của bạn giả định rằng máy chủ chạy không có đặc quyền. – ceving

+0

Câu trả lời của tôi hoạt động theo một trong hai cách. –