firefoxなどの一部のプログラムには、クリックするとファイルを参照するためのファイルマネージャーを開くボタンがあります。Debian Linuxでdiredモードのemacsで開くにはどうすればよいですか?
firefoxなどの一部のプログラムには、クリックするとファイルを参照するためのファイルマネージャーを開くボタンがあります。Debian Linuxでdiredモードのemacsで開くにはどうすればよいですか?
回答:
デスクトップ環境によっては、デフォルトのアプリケーションを設定する方法が異なる場合があります。とは言っても、多くのデスクトップ環境ではの関連付けが尊重されており~/.local/share/applications/mimeapps.list
、そこでapplication/x-directory
andやinode/directory
typeの関連付けを設定できます。
私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
バッファーが開きます。
これは実際に私のために働いています。質問してくれてありがとう---そうでなければ私はこれをセットアップしなかっただろう。
これは、ubuntuでデフォルトのファイルマネージャとしてemacsを作成する方法です。
最初に、ファイルマネージャーとして機能するスクリプトを作成する必要があります。
#!/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が開きます:-)
更新:
質問は特に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"