某些程序(如firefox)具有按钮,单击这些按钮可打开文件管理器以浏览文件。如何在Debian Linux上以Dired模式在emacs中打开它?
某些程序(如firefox)具有按钮,单击这些按钮可打开文件管理器以浏览文件。如何在Debian Linux上以Dired模式在emacs中打开它?
Answers:
根据您的桌面环境,设置默认应用程序的方法可能有所不同。也就是说,许多桌面环境都尊重中的关联~/.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的Downloads列表中的文件夹图标,将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
or nautilus /foo/bar
,我们可以使用emacsfm
or emacsfm /foo/bar
。
现在我们需要将其设置为默认文件管理器。exo-utils
使用安装
sudo apt-get install exo-utils
并运行它
exo-preferred-applications
它会打开一个新窗口。转到实用程序 -> 文件管理器 -> 其他,然后在其中输入/ usr / bin / emacsfm“%s”。
您可以转到chrome下载,如果单击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"