Certains programmes comme Firefox ont des boutons qui, lorsqu'ils sont cliqués, ouvrent un gestionnaire de fichiers pour parcourir les fichiers. Comment puis-je faire pour ouvrir dans emacs avec le mode dired sur Debian Linux?
Certains programmes comme Firefox ont des boutons qui, lorsqu'ils sont cliqués, ouvrent un gestionnaire de fichiers pour parcourir les fichiers. Comment puis-je faire pour ouvrir dans emacs avec le mode dired sur Debian Linux?
Réponses:
En fonction de votre environnement de bureau, la méthode pour définir une application par défaut peut différer. Cela dit, de nombreux environnements de bureau respectent les associations dans ~/.local/share/applications/mimeapps.list, où vous pouvez configurer une association pour les types application/x-directoryet / ou inode/directory.
Mon mimeapps.listressemble à ceci maintenant:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
Dans le même répertoire, j'ai un fichier appelé emacs-dired.desktopavec le contenu suivant:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Lorsque ma longue instance d'Emacs exécute un serveur ( M-x server-start) et que je clique sur, disons, l'icône de dossier dans la liste des téléchargements dans Icecat, un nouveau diredtampon est ouvert.
Cela fonctionne réellement pour moi maintenant. Merci d'avoir posé la question --- sinon je n'aurais pas mis cela en place.
Voici comment faire emacs comme gestionnaire de fichiers par défaut dans ubuntu.
Nous devons d'abord écrire un script qui servira de gestionnaire de fichiers.
#!/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()
Enregistrez-le comme emacsfmdans /usr/bin/. Maintenant dans le terminal au lieu d'utiliser nautilusou nautilus /foo/bar, nous pouvons utiliser emacsfm ou emacsfm /foo/bar.
Maintenant, nous devons définir cela comme gestionnaire de fichiers par défaut. Installer en exo-utilsutilisant
sudo apt-get install exo-utils
et l'exécuter
exo-preferred-applications
Il ouvre une nouvelle fenêtre. Allez dans Utilitaires -> Gestionnaire de fichiers -> Autre et entrez / usr / bin / emacsfm "% s" dedans.
Vous pouvez obtenir des téléchargements chrome et si vous cliquez show in folderdessus, il ouvrira emacs dired :-)
Mise à jour:
Référence: https://help.ubuntu.com/community/DefaultFileManager
Bien que la question soit spécifiquement pour Linux, je suis allé la chercher pour Windows (car cela m'a incité à trouver comment le faire moi-même).
Chose intéressante, vous n'avez pas à invoquer Dired, passez simplement un dossier en tant que fichier. Cela permet d'économiser beaucoup de tracas sous Windows car %1passera c:\Users(par exemple) et s'arrêtera \Us'il est inclus dans l' evalinstruction, tandis que le passer en tant que fichier le analysera correctement.
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"
Référence: Seven Forums - Comment changer le gestionnaire de fichiers par défaut