Giả sử máy chủ Emacs đang chạy, tôi muốn emacsclient <file>
để tạo khung mới (như -c
) khi không có khung hiện có hoặc tái sử dụng khung hiện có khi có. Nói cách khác, tôi chỉ muốn -c
khi không có khung hiện có. Điều đó có thể không?Tạo hoặc sử dụng lại khung giao diện Emacs hiện có
Trả lời
tôi giải quyết vấn đề của tôi với một tập hợp các kịch bản shell.
my_emacs
#!/bin/sh
emacs24-x [email protected] 1> /dev/null 2> /dev/null &
bạn có thể cần phải thay đổi emacs24-x để một cái gì đó trỏ đến emacs X11 của bạn.
my_emacsclient
#!/bin/sh
emacsclient [email protected] 1> /dev/null 2> /dev/null || my_emacs
Thêm cả hai tệp vào bạn PATH qua ~/bin hoặc tương tự.
Trong emacs của tôi Tôi cũng đã thêm các nội dung sau dòng
(load "server")
(unless (server-running-p) (server-start))
Cũng thay đổi một số biến môi trường và tùy chọn thêm một bí danh
export ALTERNATE_EDITOR="my_emacs"
export EDITOR="my_emacsclient -n"
export SUDO_EDITOR="my_emacsclient"
...
alias e="$EDITOR"
Khi bạn chạy e
trong vỏ của nó nên tạo hoặc resuse một khung giao diện hiện có. Ngoài ra, chạy e <filename>
sẽ mở tệp đó trong một khung; bạn cũng có thể chuyển các cờ khác như -n
đến e
.
Đối với hành vi tương tự trong các ứng dụng khác (nói trình quản lý tệp của bạn), bạn cũng nên thay đổi tệp .desktop Emacs (cho tôi là /usr/share/applications/emacs24.desktop
) để chạy my_emacs
. Bạn có thể thay đổi emacs
thành my_emacsclient
qua hệ thống thay thế trong bản phân phối Debian (dựa trên Debian).
Đối với bất kỳ ai có thể sử dụng thiết lập của tôi. Nó không hoàn hảo và có một số sai sót kế thừa. Ví dụ, nếu bạn cố gắng 'sudo -e
emacsclient <file>
làm những gì bạn muốn.
Nếu bạn chỉ muốn mở một khung mà không chỉ định một tập tin, sau đó bạn cần phải sử dụng -c
.
Không chính xác. Khi không có khung giao diện nào tồn tại, 'emacsclient
Bạn có thể muốn thử '--display emacsclient "$ DISPLAY" "để buộc tạo ra một khung giao diện nếu không có một được nêu ra.
Mh, vẫn không hiệu quả với tôi. Nó mở ra một khung đầu cuối cho tôi. –
@Renke: 'echo" DISPLAY = $ DISPLAY "' cho bạn biết điều gì? – Stefan
'DISPLAY =: 0.0' như mong đợi. –
Đây là giải pháp của tôi:
Trong emacs của bạn tập tin khởi động (ví dụ: ~/emacs/init.el), đảm bảo rằng bạn có những dòng sau:
;; start emacs server, if it's not already running:
(require 'server)
(unless (server-running-p) (server-start))
Sau đó, thêm dòng sau vào tập tin ~/.bashrc của bạn:
function e()
{
emacsclient "[email protected]" -a "emacs"
}
để thiết lập một đường cơ sở, đảm bảo bạn thoát khỏi tất cả các trường emacs và giết emacs daemon nếu bạn đang có nó chạy.
Sau đó, từ dòng lệnh, 'nguồn' ~ /.bashrc file:
source ~/.bashrc
Cuối cùng, sử dụng 'e' để chỉnh sửa một tập tin:
e Foobar.java &
e notes.txt &
- 1. Tôi có thể sử dụng lại màu sắc trong Trình tạo giao diện không?
- 2. Có thể buộc thực hiện rõ ràng giao diện (hoặc một phần của giao diện) không?
- 3. Sử dụng Trình tạo giao diện cho UITableViews
- 4. Java sử dụng giao diện làm gọi lại
- 5. nếu sử dụng giao diện nên một lớp luôn thực hiện đúng giao diện
- 6. Khi nào tôi nên sử dụng Trình tạo giao diện?
- 7. lại thực hiện một giao diện mà giao diện khác đã được thừa hưởng
- 8. C# Sử dụng generics và thực hiện giao diện
- 9. Làm cách nào để tạo giao diện ASCII có khung tĩnh trong Python?
- 10. Gọi lại với giao diện hoặc đối tượng chức năng?
- 11. Loại bê tông hoặc Giao diện cho loại trả lại?
- 12. Xem lại trang web Ứng dụng/Giao diện
- 13. Việc sử dụng cách tạo lớp trong giao diện và giao diện bên trong lớp
- 14. Dependency Injection & sử dụng giao diện?
- 15. Khởi tạo Giao diện?
- 16. Sử dụng Giao diện có thuộc tính điều hướng
- 17. Tạo và lớp DAO (giao diện + implentation) hoặc implentation chỉ
- 18. Khi nào sử dụng giao diện hoặc lớp trừu tượng? Khi nào sử dụng cả hai?
- 19. Sử dụng Reflection.Emit để tạo một lớp thực hiện một giao diện
- 20. Thực hiện giao diện IList
- 21. Java - Thực hiện giao diện
- 22. C# Giao diện: Có thể tham khảo loại thực hiện giao diện trong chính giao diện không?
- 23. Sử dụng Java Generics trong giao diện
- 24. Giao diện người dùng Kendo và giao diện người dùng jQuery - kích thước và khung javascript
- 25. Phương thức giao diện Java Phương pháp: Mỗi lớp có thực hiện một giao diện không?
- 26. Tôi có thể sử dụng lớp scala thực hiện giao diện java từ Java không?
- 27. Tạo một thể hiện của giao diện trong C#
- 28. Cách sử dụng giao diện Comparator
- 29. Giao diện được tạo động
- 30. Làm cách nào để sử dụng giao diện DBUS của Emacs?
Mà không phải là những gì rời ra '-c' làm không? Có nghĩa là một 'emacsclient yourfile.ext' đơn giản sẽ mở trong một khung hiện có nếu có, và nếu không có thì nó sẽ tạo ra một khung. –