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?
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?
Jawaban:
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-directory
dan / atau inode/directory
tipe.
mimeapps.list
Penampilan 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.desktop
dengan 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, dired
buffer baru dibuka.
Ini sebenarnya bekerja untuk saya sekarang. Terima kasih telah mengajukan pertanyaan --- jika tidak, saya tidak akan mengatur ini.
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 emacsfm
di /usr/bin/
. Sekarang di terminal alih-alih menggunakan nautilus
atau nautilus /foo/bar
, kita dapat menggunakan emacsfm
atau emacsfm /foo/bar
.
Sekarang kita perlu mengatur ini sebagai manajer file default. Instal exo-utils
menggunakan
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 folder
itu akan membuka emacs dired :-)
Memperbarui:
Referensi: https://help.ubuntu.com/community/DefaultFileManager
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 %1
akan berlalu c:\Users
(misalnya) dan rusak \U
jika dimasukkan dalam eval
pernyataan, 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"