ฉันได้รับ Emacs daemon เพื่อทำงานผ่านบรรทัดคำสั่งโดยใช้หน้า EmacsWikiแต่ฉันติดอยู่กับวิธีทำให้ไคลเอ็นต์เรียกใช้ผ่านตัวเรียกใช้งาน Gnome 3 ฉันจะตั้งค่าไฟล์เดสก์ท็อป Gnomeที่เปิดหน้าต่าง GUI ที่เชื่อมต่อกับ Emacs daemon ได้อย่างไร
ฉันได้รับ Emacs daemon เพื่อทำงานผ่านบรรทัดคำสั่งโดยใช้หน้า EmacsWikiแต่ฉันติดอยู่กับวิธีทำให้ไคลเอ็นต์เรียกใช้ผ่านตัวเรียกใช้งาน Gnome 3 ฉันจะตั้งค่าไฟล์เดสก์ท็อป Gnomeที่เปิดหน้าต่าง GUI ที่เชื่อมต่อกับ Emacs daemon ได้อย่างไร
คำตอบ:
ฉันใช้ Ubuntu ดังนั้นตำแหน่งของไฟล์เดสก์ท็อปอาจแตกต่างกัน แต่ฉันคิดว่าเนื้อหาควรเหมือนกัน
$ cat ~/.local/share/applications/emacsclient.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=GNU Emacs 24
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/emacsclient -c -a "" %F
Icon=/usr/share/icons/hicolor/scalable/apps/emacs-snapshot.svg
Type=Application
Terminal=false
Categories=Utility;Development;TextEditor;
StartupWMClass=Emacs
Name[en_US]=GNU Emacs 24
ส่วนที่สำคัญคือ:
Exec=/usr/bin/emacsclient -c -a "" %F
หากต้องการชี้แจงว่าน่าจะเป็น:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
จากเอกสารเกี่ยวกับ emacsclient สวิตช์เหล่านั้นทำสิ่งต่อไปนี้:
-c, --create-frame Create a new frame instead of trying to
use the current Emacs frame
-a EDITOR, --alternate-editor=EDITOR
Editor to fallback to if the server is not running
If EDITOR is the empty string, start Emacs in daemon
mode and try connecting again
จึงทำให้กรอบใหม่ที่ใช้-c
แล้วถ้า emacs ไม่ได้ daemonized แล้วมันเริ่ม emacs -a ""
ใหม่ภูตด้วย ในที่สุดการ%F
แก้ไขมันเพื่อให้คุณสามารถลากไฟล์ข้อความลงบนไอคอนและมันจะเปิดมัน
นอกจากนี้คุณยังอาจพิจารณารวมถึง-F "((fullscreen . maximized))"
การบังคับให้เฟรมเปิดใช้งานให้ใหญ่ที่สุด น่าเสียดายที่ฉันจำไม่ได้ว่าต้องใช้ emac รุ่นใดเพื่อให้ทำงานได้
ฉันแค่ปรับแต่งคำตอบของ dgtized เพื่อแก้ไขความคิดเห็นจาก akaihola คือสิ่งที่เราต้องการคือ
ฉันพบว่าการสร้างemacs25.desktop
ไฟล์แทนที่จะใช้งานได้emacsclient.desktop
อย่างน่าอัศจรรย์ (ตรงไปตรงมาฉันไม่รู้ว่าทำไม)
ดังนั้นฉันจึง:
cp /usr/share/applications/emacs25.desktop ~/.local/share/applications
(ขึ้นอยู่กับระบบของคุณอาจไม่ได้emacs25
)
จากนั้นในฉัน~/.local/share/applications/emacs25.desktop
ฉันเปลี่ยนบรรทัด Exec เป็น:
Exec=/bin/bash --login -c "emacsclient --alternate-editor= --create-frame %F"
เชลล์ล็อกอิน bash ทำให้แน่ใจว่า daemon มีสภาพแวดล้อมการล็อกอินแบบเต็ม
และฉันลบTryExec
บรรทัด
ในที่สุดฉันก็แก้ไขName
ดังนั้นฉันจึงสามารถจดจำได้ในตัวเรียกใช้งานแตะที่ Super และคลิกขวาเพื่อเพิ่มรายการใหม่ของฉันลงในรายการโปรด ฉันมีไอเทมชิ้นแรกสำหรับฉันอยู่เสมอดังนั้น Super + 1 จึงเรียกมันออกมา
Name=GNU Emacs client
และดูเหมือนว่าจะเป็นไปด้วยดี