Alguns programas como o Firefox possuem botões que, quando clicados, abrem um gerenciador de arquivos para navegar pelos arquivos. Como faço para abrir no emacs com modo direcionado no Debian Linux?
Alguns programas como o Firefox possuem botões que, quando clicados, abrem um gerenciador de arquivos para navegar pelos arquivos. Como faço para abrir no emacs com modo direcionado no Debian Linux?
Respostas:
Dependendo do ambiente da área de trabalho, o método para definir um aplicativo padrão pode ser diferente. Dito isto, muitos ambientes de área de trabalho respeitam as associações ~/.local/share/applications/mimeapps.list
, nas quais você pode configurar uma associação para os tipos application/x-directory
e / ou inode/directory
.
Minha mimeapps.list
aparência se parece agora:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
No mesmo diretório, tenho um arquivo chamado emacs-dired.desktop
com o seguinte conteúdo:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Quando minha longa instância do Emacs executa um servidor ( M-x server-start
) e clico em, digamos, no ícone da pasta na lista de Downloads no Icecat, um novo dired
buffer é aberto.
Isso realmente funciona para mim agora. Obrigado por fazer a pergunta --- caso contrário, eu não teria configurado isso.
É assim que o emacs é o gerenciador de arquivos padrão do ubuntu.
Primeiro temos que escrever um script que atuará como nosso gerenciador de arquivos.
#!/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()
Guarde isto como emacsfm
em /usr/bin/
. Agora no terminal, em vez de usar nautilus
ou nautilus /foo/bar
, podemos usar emacsfm
ou emacsfm /foo/bar
.
Agora precisamos definir isso como gerenciador de arquivos padrão. Instale exo-utils
usando
sudo apt-get install exo-utils
e execute
exo-preferred-applications
Abre uma nova janela. Vá em Utilitários -> Gerenciador de arquivos -> Outro e digite / usr / bin / emacsfm "% s" nele.
Você pode ir para downloads do chrome e, se clicar, show in folder
ele abrirá o emacs dired :-)
Atualizar:
Referência: https://help.ubuntu.com/community/DefaultFileManager
Embora a pergunta seja especificamente para Linux, eu descobri isso no Windows (já que isso me levou a descobrir como fazer isso sozinho).
Curiosamente, você não precisa chamar Dired, basta passar uma pasta como o arquivo. Isso economiza muito aborrecimento no Windows, uma vez %1
que passará c:\Users
(por exemplo) e será interrompido \U
se incluído na eval
declaração, enquanto passá-lo como um arquivo o analisará corretamente.
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"
Referência: Seven Forums - Como alterar o Gerenciador de Arquivos padrão