Alcuni programmi come Firefox hanno pulsanti che, quando si fa clic, aprono un file manager per sfogliare i file. Come faccio ad aprirlo in emacs con modalità diretta su Debian Linux?
Alcuni programmi come Firefox hanno pulsanti che, quando si fa clic, aprono un file manager per sfogliare i file. Come faccio ad aprirlo in emacs con modalità diretta su Debian Linux?
Risposte:
A seconda dell'ambiente desktop, il metodo per impostare un'applicazione predefinita potrebbe differire. Detto questo, molti ambienti desktop rispettano le associazioni in ~/.local/share/applications/mimeapps.list
cui è possibile impostare un'associazione per i tipi application/x-directory
e / o inode/directory
.
Il mio mimeapps.list
sembra così ora:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
Nella stessa directory ho un file chiamato emacs-dired.desktop
con il seguente contenuto:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Quando la mia istanza di lunga data di Emacs esegue un server ( M-x server-start
) e faccio clic, ad esempio, sull'icona della cartella nell'elenco dei download in Icecat dired
viene aperto un nuovo buffer.
Questo in realtà funziona per me ora. Grazie per aver posto la domanda --- altrimenti non avrei impostato questo.
Ecco come creare emacs come file manager predefinito in Ubuntu.
Per prima cosa dobbiamo scrivere uno script che fungerà da nostro file manager.
#!/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()
Salva questo come emacsfm
in /usr/bin/
. Ora nel terminale invece di usare nautilus
o nautilus /foo/bar
, possiamo usare emacsfm
o emacsfm /foo/bar
.
Ora dobbiamo impostarlo come file manager predefinito. Installa exo-utils
usando
sudo apt-get install exo-utils
ed eseguirlo
exo-preferred-applications
Si apre una nuova finestra. Vai su Utilità -> File manager -> Altro e inserisci / usr / bin / emacsfm "% s" in esso.
Puoi show in folder
andare ai download di Chrome e se fai clic su di essa si aprirà emacs diretto :-)
Aggiornare:
Riferimento: https://help.ubuntu.com/community/DefaultFileManager
Sebbene la domanda sia specifica per Linux, sono andato a capirlo per Windows (dato che questo mi ha spinto a scoprire come farlo da solo).
È interessante notare che non è necessario invocare Dired, è sufficiente passare una cartella come file. Ciò consente di risparmiare molta seccatura su Windows poiché %1
passerà c:\Users
(ad esempio) e si interromperà \U
se incluso eval
nell'istruzione, mentre passandolo come file verrà analizzato correttamente.
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"
Riferimento: Seven Forums - Come modificare il File Manager predefinito