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-directorye / ou inode/directory.
Minha mimeapps.listaparê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.desktopcom 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 diredbuffer é 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 emacsfmem /usr/bin/. Agora no terminal, em vez de usar nautilusou nautilus /foo/bar, podemos usar emacsfm ou emacsfm /foo/bar.
Agora precisamos definir isso como gerenciador de arquivos padrão. Instale exo-utilsusando
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 folderele 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 %1que passará c:\Users(por exemplo) e será interrompido \Use incluído na evaldeclaraçã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