Некоторые программы, такие как firefox, имеют кнопки, которые при нажатии открывают файловый менеджер для просмотра файлов. Как мне сделать так, чтобы он открывался в emacs с режимом dired в Debian Linux?
Некоторые программы, такие как firefox, имеют кнопки, которые при нажатии открывают файловый менеджер для просмотра файлов. Как мне сделать так, чтобы он открывался в emacs с режимом dired в Debian Linux?
Ответы:
В зависимости от среды рабочего стола способ установки приложения по умолчанию может отличаться. Тем не менее, многие среды рабочего стола уважают ассоциации, в ~/.local/share/applications/mimeapps.list
которых вы можете установить ассоциации для application/x-directory
и / или inode/directory
типов.
Моя mimeapps.list
выглядит сейчас так:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
В той же директории у меня есть файл emacs-dired.desktop
со следующим содержимым:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Когда мой долгоживущий экземпляр Emacs запускает сервер ( M-x server-start
) и я нажимаю, скажем, значок папки в списке загрузок в Icecat, открывается новый dired
буфер.
Это на самом деле работает для меня сейчас. Спасибо, что задали вопрос --- иначе я бы не настроил это.
Вот как сделать emacs файловым менеджером по умолчанию в Ubuntu.
Сначала мы должны написать скрипт, который будет действовать как наш файловый менеджер.
#!/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()
Сохраните это как emacsfm
в /usr/bin/
. Теперь в терминале вместо использования nautilus
или nautilus /foo/bar
мы можем использовать emacsfm
или emacsfm /foo/bar
.
Теперь нам нужно установить это как файловый менеджер по умолчанию. Установить exo-utils
с помощью
sudo apt-get install exo-utils
и запустить его
exo-preferred-applications
Это открывает новое окно. Зайдите в Утилиты -> Файловый менеджер -> Другое и введите в него / usr / bin / emacsfm "% s" .
Вы можете перейти к загрузке Chrome, и если щелкнуть по show in folder
нему, откроется emacs dired :-)
Обновить:
Ссылка: https://help.ubuntu.com/community/DefaultFileManager
Хотя вопрос был специально для Linux, я пошел и выяснил это для Windows (так как это побудило меня найти, как сделать это для себя).
Интересно, что вам не нужно вызывать Dired, просто передать папку как файл. Это экономит много хлопот в Windows, так %1
как пройдет c:\Users
(например) и остановится, \U
если будет включено в eval
оператор, а передача его в виде файла будет правильно проанализирована.
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"
Ссылка: Семь форумов - Как изменить файловый менеджер по умолчанию