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-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.
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:
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 %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"