Як встановити emacs як менеджер файлів за замовчуванням?


19

Деякі програми, такі як Firefox, мають кнопки, які при натисканні відкривають диспетчер файлів для перегляду файлів. Як змусити його відкриватися в emacs із переведеним режимом на Debian Linux?


9
Яка ваша операційна система?
Дрю

1
Я використовую debian Джессі.
godblessfq

Відповіді:


17

Залежно від середовища вашого робочого столу спосіб встановлення програми за замовчуванням може відрізнятися. Зважаючи на це, багато середовищ настільних ПК поважають асоціації, у ~/.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відкриється новий буфер.

Це насправді працює для мене. Дякую, що задали питання --- інакше я б не налаштовував це.


6

Ось як зробити 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


Ананд, це працює .. але він відкриває нове вікно emacs кожного разу .. добре використовувати emacsclient, який відкриє новий буфер у вже відкритому сеансі emacs ....
Madhavan

Я думаю, попередня відповідь стосується цього питання ...
Мадхаван

4

Хоча питання спеціально для 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"

Довідка: Сім форумів - Як змінити файловий менеджер за замовчуванням


-4

Можна використовувати Ranger. Однак ви можете налаштувати xmonad для використання emacs Windows за замовчуванням під час запуску сеансу


7
Будь ласка, розгорніть свою відповідь, щоб зробити її самостійною.
Дан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.