Come impostare emacs come file manager predefinito?


19

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?


9
Qual è il tuo sistema operativo?
Estratto il

1
Sto usando Debian Jessie.
godblessfq,

Risposte:


17

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.


6

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:

inserisci qui la descrizione dell'immagine Riferimento: https://help.ubuntu.com/community/DefaultFileManager


Anand, funziona .. ma apre una nuova finestra di emacs ogni volta .. è bene usare emacsclient che aprirà un nuovo buffer in una sessione di emacs già aperta ....
Madhavan

penso, la risposta precedente affronta questo punto ...
Madhavan

4

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


-4

Puoi usare Ranger. Tuttavia è possibile configurare xmonad per l'uso di emacs come predefinito di Windows all'avvio della sessione


7
Espandi la tua risposta per renderla autonoma.
Dan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.