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-directory
et / ou inode/directory
.
Mon mimeapps.list
ressemble à 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.desktop
avec 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 dired
tampon 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 emacsfm
dans /usr/bin/
. Maintenant dans le terminal au lieu d'utiliser nautilus
ou 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-utils
utilisant
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 folder
dessus, 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 %1
passera c:\Users
(par exemple) et s'arrêtera \U
s'il est inclus dans l' eval
instruction, 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