Algunos programas como Firefox tienen botones que, al hacer clic, abren un administrador de archivos para explorar archivos. ¿Cómo hago para que se abra en emacs con modo directo en Debian Linux?
Algunos programas como Firefox tienen botones que, al hacer clic, abren un administrador de archivos para explorar archivos. ¿Cómo hago para que se abra en emacs con modo directo en Debian Linux?
Respuestas:
Dependiendo de su entorno de escritorio, el método para establecer una aplicación predeterminada puede diferir. Dicho esto, muchos entornos de escritorio respetan las asociaciones en ~/.local/share/applications/mimeapps.list
, donde puede configurar una asociación para los tipos application/x-directory
y / o inode/directory
.
Mi mimeapps.list
aspecto es ahora ahora:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
En el mismo directorio tengo un archivo llamado emacs-dired.desktop
con los siguientes contenidos:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Cuando mi instancia de Emacs de larga duración ejecuta un servidor ( M-x server-start
) y hago clic en, digamos, el icono de carpeta en la lista de Descargas en Icecat dired
se abre un nuevo búfer.
Esto realmente funciona para mí ahora. Gracias por hacer la pregunta --- de lo contrario no habría configurado esto.
Así es como hacer emacs como administrador de archivos predeterminado en ubuntu.
Primero tenemos que escribir un script que actuará como nuestro administrador de archivos.
#!/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()
Guarda esto como emacsfm
en /usr/bin/
. Ahora en la terminal en lugar de usar nautilus
o nautilus /foo/bar
, podemos usar emacsfm
o emacsfm /foo/bar
.
Ahora tenemos que configurar esto como administrador de archivos predeterminado. Instalar exo-utils
usando
sudo apt-get install exo-utils
y ejecutarlo
exo-preferred-applications
Se abre una nueva ventana. Vaya a Utilidades -> Administrador de archivos -> Otro e ingrese / usr / bin / emacsfm "% s" en él.
Puede ir a las descargas de Chrome y si hace clic show in folder
se abrirá emacs dired :-)
Actualizar:
Referencia: https://help.ubuntu.com/community/DefaultFileManager
Aunque la pregunta es específicamente para Linux, fui y lo descubrí para Windows (ya que esto me impulsó a encontrar cómo hacerlo por mí mismo).
Curiosamente, no tiene que invocar Dired, simplemente pase una carpeta como archivo. Esto ahorra mucha molestia en Windows, ya %1
que pasará c:\Users
(por ejemplo) y se romperá \U
si se incluye en la eval
declaración, mientras que pasarlo como un archivo lo analizará correctamente.
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"
Referencia: Siete foros: cómo cambiar el Administrador de archivos predeterminado