Bagaimana cara mengatur emacs sebagai manajer file default?

19

Beberapa program seperti firefox memiliki tombol yang ketika diklik membuka pengelola file untuk menelusuri file. Bagaimana cara membuatnya terbuka di emacs dengan mode dired di Debian Linux?

godblessfq
sumber
9
Apa sistem operasi Anda?
Drew
1
Saya menggunakan debian jessie.
godblessfq

Jawaban:

17

Bergantung pada lingkungan desktop Anda metode untuk mengatur aplikasi default mungkin berbeda. Yang mengatakan, banyak lingkungan desktop menghormati asosiasi di ~/.local/share/applications/mimeapps.list, di mana Anda dapat mengatur asosiasi untuk application/x-directorydan / atau inode/directorytipe.

mimeapps.listPenampilan saya seperti ini sekarang:

[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop

Dalam direktori yang sama saya memiliki file yang dipanggil emacs-dired.desktopdengan konten berikut:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired

Ketika instance saya yang berumur panjang dari Emacs menjalankan server ( M-x server-start) dan saya mengklik, katakanlah, ikon folder dalam daftar Unduhan di Icecat, diredbuffer baru dibuka.

Ini sebenarnya bekerja untuk saya sekarang. Terima kasih telah mengajukan pertanyaan --- jika tidak, saya tidak akan mengatur ini.

rekado
sumber
6

Ini adalah cara menjadikan emacs sebagai manajer file default di ubuntu.

Pertama kita harus menulis skrip yang akan bertindak sebagai manajer file kita.

#!/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()

Simpan ini sebagai emacsfmdi /usr/bin/. Sekarang di terminal alih-alih menggunakan nautilusatau nautilus /foo/bar, kita dapat menggunakan emacsfm atau emacsfm /foo/bar.

Sekarang kita perlu mengatur ini sebagai manajer file default. Instal exo-utilsmenggunakan

sudo apt-get install exo-utils

dan jalankan

exo-preferred-applications

Ini membuka jendela baru. Pergi ke Utilities -> File manager -> Other dan masukkan / usr / bin / emacsfm "% s" di dalamnya.

Anda bisa mendapatkan unduhan chrome dan jika klik show in folderitu akan membuka emacs dired :-)

Memperbarui:

masukkan deskripsi gambar di sini Referensi: https://help.ubuntu.com/community/DefaultFileManager

ChillarAnand
sumber
Anand, ini bekerja .. tetapi membuka jendela emacs baru setiap kali .. ada baiknya menggunakan emacsclient yang akan membuka buffer baru dalam sesi emacs yang sudah terbuka ....
Madhavan
saya pikir, jawaban sebelumnya membahas hal ini ...
Madhavan
4

Meskipun pertanyaannya khusus untuk Linux, saya pergi dan menemukan jawabannya untuk Windows (karena ini mendorong saya untuk menemukan cara melakukannya sendiri).

Cukup menarik, Anda tidak perlu memohon Dired, cukup lewat folder sebagai file. Ini menghemat banyak kerumitan pada Windows karena %1akan berlalu c:\Users(misalnya) dan rusak \Ujika dimasukkan dalam evalpernyataan, sementara melewatinya sebagai file akan menguraikannya dengan benar.

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"

Referensi: Tujuh Forum - Cara mengubah Manajer File default

Jonathan Leech-Pepin
sumber
-4

Anda bisa menggunakan Ranger. Namun Anda dapat mengkonfigurasi xmonad untuk digunakan emacs a windows default ketika Anda memulai sesi

mizhac
sumber
7
Harap perluas jawaban Anda untuk membuatnya mandiri.
Dan