Деякі програми, такі як Firefox, мають кнопки, які при натисканні відкривають диспетчер файлів для перегляду файлів. Як змусити його відкриватися в emacs із переведеним режимом на Debian Linux?
Деякі програми, такі як Firefox, мають кнопки, які при натисканні відкривають диспетчер файлів для перегляду файлів. Як змусити його відкриватися в emacs із переведеним режимом на 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" .
Ви можете перейти на завантаження хрома, і якщо натиснути 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"
Довідка: Сім форумів - Як змінити файловий менеджер за замовчуванням