วิธีการตั้งค่า emacs เป็นตัวจัดการไฟล์เริ่มต้น?


19

บางโปรแกรมเช่น firefox มีปุ่มที่เมื่อคลิกเปิดตัวจัดการไฟล์สำหรับเรียกดูไฟล์ ฉันจะทำให้เปิดใน emacs ด้วยโหมด dired บน Debian Linux ได้อย่างไร


9
ระบบปฏิบัติการของคุณคืออะไร
ดึง

1
ฉันกำลังใช้เดเบียนเจสซี
godblessfq

คำตอบ:


17

ขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปของคุณวิธีการตั้งค่าแอปพลิเคชันเริ่มต้นอาจแตกต่างกัน ที่กล่าวว่าสภาพแวดล้อมเดสก์ท็อปจำนวนมากเคารพการเชื่อมโยงใน~/.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บัฟเฟอร์ใหม่เปิดขึ้น

ตอนนี้ใช้งานได้จริงสำหรับฉัน ขอขอบคุณที่ถามคำถาม --- ไม่เช่นนั้นฉันจะไม่ตั้งค่านี้


6

นี่คือวิธีการทำให้ 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


อานันท์ก็ทำงาน .. แต่จะเปิดใหม่ทุกครั้งที่หน้าต่าง emacs .. มันเป็นสิ่งที่ดีที่จะใช้ emacsclient ที่จะเปิดกันชนใหม่ในเซสชั่น emacs เปิดอยู่แล้ว ....
ธา

ผมคิดว่าที่อยู่คำตอบก่อนหน้าจุดนี้ ...
ธา

4

แม้ว่าคำถามนี้มีเฉพาะสำหรับ 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 เริ่มต้น


-4

คุณสามารถใช้ Ranger อย่างไรก็ตามคุณสามารถกำหนดค่า xmonad สำหรับการใช้งาน emacs เป็นค่าเริ่มต้นของ windows เมื่อคุณเริ่มเซสชัน


7
โปรดขยายคำตอบของคุณเพื่อให้มีอยู่ในตัวเอง
แดน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.