บางโปรแกรมเช่น firefox มีปุ่มที่เมื่อคลิกเปิดตัวจัดการไฟล์สำหรับเรียกดูไฟล์ ฉันจะทำให้เปิดใน emacs ด้วยโหมด dired บน Debian Linux ได้อย่างไร
บางโปรแกรมเช่น firefox มีปุ่มที่เมื่อคลิกเปิดตัวจัดการไฟล์สำหรับเรียกดูไฟล์ ฉันจะทำให้เปิดใน emacs ด้วยโหมด dired บน Debian Linux ได้อย่างไร
คำตอบ:
ขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปของคุณวิธีการตั้งค่าแอปพลิเคชันเริ่มต้นอาจแตกต่างกัน ที่กล่าวว่าสภาพแวดล้อมเดสก์ท็อปจำนวนมากเคารพการเชื่อมโยงใน~/.local/share/applications/mimeapps.listซึ่งคุณสามารถตั้งค่าการเชื่อมโยงสำหรับapplication/x-directoryและ / หรือinode/directoryประเภท
mimeapps.listหน้าตาของฉันตอนนี้:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
ในไดเรกทอรีเดียวกันฉันมีไฟล์ที่เรียกว่าemacs-dired.desktopมีเนื้อหาต่อไปนี้:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
เมื่ออินสแตนซ์อันยาวนานของ Emacs ใช้เซิร์ฟเวอร์ ( M-x server-start) และฉันคลิกที่ไอคอนโฟลเดอร์ในรายการดาวน์โหลดใน Icecat จะมีdiredบัฟเฟอร์ใหม่เปิดขึ้น
ตอนนี้ใช้งานได้จริงสำหรับฉัน ขอขอบคุณที่ถามคำถาม --- ไม่เช่นนั้นฉันจะไม่ตั้งค่านี้
นี่คือวิธีการทำให้ emacs เป็นตัวจัดการไฟล์เริ่มต้นในอูบุนตู
ก่อนอื่นเราต้องเขียนสคริปต์ซึ่งจะทำหน้าที่เป็นตัวจัดการไฟล์ของเรา
#!/usr/bin/env python
import os
import sys
def main():
if len(sys.argv) > 1:
dirname = sys.argv[1]
else:
dirname = '~'
os.system('emacs --eval \'(dired "{}")\'%'.format(dirname))
# you can use emacsclient if you are running emacs server
if __name__ == "__main__":
main()
บันทึกเป็นในemacsfm /usr/bin/ตอนนี้ใน terminal แทนการใช้nautilusหรือnautilus /foo/barเราสามารถใช้หรือemacsfm emacsfm /foo/bar
ตอนนี้เราต้องตั้งค่านี้เป็นตัวจัดการไฟล์เริ่มต้น ติดตั้งexo-utilsโดยใช้
sudo apt-get install exo-utils
และเรียกใช้
exo-preferred-applications
มันเปิดหน้าต่างใหม่ ไปที่ยูทิลิตี้ -> จัดการไฟล์ -> อื่น ๆและป้อน/ usr / bin / emacsfm "% s"ในนั้น
คุณสามารถดาวน์โหลดโครเมี่ยมได้และหากคลิกshow in folderจะเปิด emacs dired :-)
ปรับปรุง:
การอ้างอิง: https://help.ubuntu.com/community/DefaultFileManager
แม้ว่าคำถามนี้มีเฉพาะสำหรับ Linux ฉันไปและคิดออกสำหรับ Windows (ตั้งแต่นี้แจ้งให้ฉันค้นหาวิธีทำด้วยตัวเอง)
น่าสนใจพอคุณไม่ต้องเรียกใช้ Dired เพียงแค่ส่งผ่านโฟลเดอร์เป็นไฟล์ สิ่งนี้จะช่วยลดความยุ่งยากบน Windows เนื่องจาก%1จะผ่านc:\Users(ตัวอย่าง) และทำลาย\Uหากรวมอยู่ในevalคำสั่งในขณะที่ส่งผ่านเป็นไฟล์จะแยกวิเคราะห์ได้อย่างถูกต้อง
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Drive\shell]
@="Dired"
[HKEY_CLASSES_ROOT\Drive\shell\Dired]
@="Open in Dired"
[HKEY_CLASSES_ROOT\Drive\shell\Dired\command]
@="\"%path/to/emacsclientw%\" %1"
[HKEY_CLASSES_ROOT\Directory\shell]
@="XYplorer"
[HKEY_CLASSES_ROOT\Directory\shell\Dired]
@="Open in XYplorer"
[HKEY_CLASSES_ROOT\Directory\shell\Dired\command]
@="\"%path/to/emacsclientw%\" %1"
การอ้างอิง: ฟอรัมเจ็ด - วิธีเปลี่ยน File Manager เริ่มต้น
คุณสามารถใช้ Ranger อย่างไรก็ตามคุณสามารถกำหนดค่า xmonad สำหรับการใช้งาน emacs เป็นค่าเริ่มต้นของ windows เมื่อคุณเริ่มเซสชัน