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.listcui è possibile impostare un'associazione per i tipi application/x-directorye / o inode/directory.
Il mio mimeapps.listsembra così ora:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
Nella stessa directory ho un file chiamato emacs-dired.desktopcon 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 diredviene 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 emacsfmin /usr/bin/. Ora nel terminale invece di usare nautiluso nautilus /foo/bar, possiamo usare emacsfm o emacsfm /foo/bar.
Ora dobbiamo impostarlo come file manager predefinito. Installa exo-utilsusando
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 folderandare 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é %1passerà c:\Users(ad esempio) e si interromperà \Use incluso evalnell'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