Niektóre programy, takie jak Firefox, mają przyciski, które po kliknięciu otwierają menedżera plików do przeglądania plików. Jak sprawić, by otwierał się w emacsie z trybem dired w systemie Debian Linux?
Niektóre programy, takie jak Firefox, mają przyciski, które po kliknięciu otwierają menedżera plików do przeglądania plików. Jak sprawić, by otwierał się w emacsie z trybem dired w systemie Debian Linux?
Odpowiedzi:
W zależności od środowiska pulpitu metoda ustawienia domyślnej aplikacji może się różnić. To powiedziawszy, wiele środowisk pulpitu szanuje powiązania, w ~/.local/share/applications/mimeapps.list
których można skonfigurować powiązanie dla application/x-directory
i / lub inode/directory
typów.
Kim mimeapps.list
wygląda teraz:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
W tym samym katalogu mam plik emacs-dired.desktop
o następującej treści:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Kiedy moja długotrwała instancja Emacsa uruchamia serwer ( M-x server-start
) i kliknę, powiedzmy, ikonę folderu na liście Pobranych w Icecat, dired
otwiera się nowy bufor.
To faktycznie działa teraz dla mnie. Dzięki, że zadałeś pytanie --- inaczej nie ustawiłbym tego.
Oto jak ustawić emacsa jako domyślny menedżer plików w Ubuntu.
Najpierw musimy napisać skrypt, który będzie działał jako nasz menedżer plików.
#!/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()
Zapisz to jak emacsfm
w /usr/bin/
. Teraz w terminalu zamiast za pomocą nautilus
lub nautilus /foo/bar
możemy użyć emacsfm
lub emacsfm /foo/bar
.
Teraz musimy ustawić to jako domyślny menedżer plików. Zainstaluj exo-utils
za pomocą
sudo apt-get install exo-utils
i uruchom to
exo-preferred-applications
Otwiera nowe okno. Przejdź do Narzędzia -> Menedżer plików -> Inne i wpisz / usr / bin / emacsfm "% s" .
Możesz pobrać Chrome i jeśli klikniesz show in folder
, otworzy się emacs dired :-)
Aktualizacja:
Odniesienie: https://help.ubuntu.com/community/DefaultFileManager
Chociaż pytanie dotyczy konkretnie Linuksa, poszedłem i wymyśliłem je dla systemu Windows (ponieważ skłoniło mnie to do znalezienia, jak to zrobić dla siebie).
Co ciekawe, nie musisz wywoływać Dired, wystarczy przekazać folder jako plik. To oszczędza wiele kłopotów w systemie Windows, ponieważ %1
przejdzie c:\Users
(na przykład) i zepsuje się, \U
jeśli zostanie zawarte w eval
instrukcji, a przekazanie jej jako pliku spowoduje jej poprawną analizę.
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"
Odniesienia: Siedem forów - jak zmienić domyślny menedżer plików