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.listktórych można skonfigurować powiązanie dla application/x-directoryi / lub inode/directorytypów.
Kim mimeapps.listwygląda teraz:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
W tym samym katalogu mam plik emacs-dired.desktopo 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, diredotwiera 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 emacsfmw /usr/bin/. Teraz w terminalu zamiast za pomocą nautiluslub nautilus /foo/barmożemy użyć emacsfm lub emacsfm /foo/bar.
Teraz musimy ustawić to jako domyślny menedżer plików. Zainstaluj exo-utilsza 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ż %1przejdzie c:\Users(na przykład) i zepsuje się, \Ujeśli zostanie zawarte w evalinstrukcji, 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