我想在从dired模式打开图像文件时配置emacs以使用外部应用程序.
另一方面,我也想在emacs缓冲区中使用内联图像.
要在外部应用程序中打开文件,我使用openwith.el 包http://www.emacswiki.org/emacs/OpenWith
openwith minor模式的问题在于它是全局的,并且当它由dired-mode-hook启用时
(add-hook 'dired-mode-hook
(lambda ()
(setq truncate-lines t)
(openwith-mode t)
))
Run Code Online (Sandbox Code Playgroud)
它遍布各处,emacs缓冲区中的所有内嵌图像都在外部应用程序中打开.
我试图改变
:global t
Run Code Online (Sandbox Code Playgroud)
至
:global nil
Run Code Online (Sandbox Code Playgroud)
在openwith.el中,但它以某种方式完全禁用了openwith模式.
所以,我的问题是:如何告诉emacs只使用带有dired缓冲区的openwith minor模式而不是其他地方?
谢谢.
如果删除了文件foo中dired-x,对方问Kill buffer of foo, too?.如何跳过这个问题并始终回答yes?
我想使用 emacs 的 dired 模式作为我的文件浏览器。我非常喜欢看到文件/文件夹的图标,而不是看到扩展名和颜色。这些图标给了我一个非常快速的视觉反馈。我在网上搜索了 dired 中的图标显示,但没有找到。所以我想知道是否有可能做到这一点,如果有,怎么做?
把我的问题说清楚
如何在 Emacs 的 dired 模式下显示文件和文件夹的图标?
我通过使用这个常见的elisp来让emacs或多或少地表达我的想法:
(defun toggle-current-window-dedication ()
(interactive)
(let* ((window (selected-window))
(dedicated (window-dedicated-p window)))
(set-window-dedicated-p window (not dedicated))
(message "Window %sdedicated to %s"
(if dedicated "no longer " "")
(buffer-name))))
(global-set-key [pause] 'toggle-current-window-dedication)
Run Code Online (Sandbox Code Playgroud)
不幸的是,dired使用目录作为缓冲区名称,因此专用dired窗口只将它专用于该目录.向上或向下导航后,它会在单独的窗口中打开一个新缓冲区.我想要做的是将一个窗口专用于主要模式(在这种情况下为dired),并且默认为该模式的所有新缓冲区都更喜欢该窗口.这可能吗?
我正在使用带有dired的emacs,
(require 'dired-details)
(dired-details-install)
Run Code Online (Sandbox Code Playgroud)
和偶像,
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)
(setq ido-use-filename-at-point 'guess)
(setq ido-create-new-buffer 'always)
Run Code Online (Sandbox Code Playgroud)
(以及recentf如所描述这里)
但是,当我处于直接状态并在选择几个文件后复制(Shift-C),并转到应该粘贴它们的新目录...我有两个不工作的选项:1)我点击一个目录,并进一步进入我不想要的目录.2)我点击一个文件,ido抱怨
标记副本:目标必须是目录:
如何将所选文件直接粘贴到新目标?任何帮助表示感谢,谢谢.
我经常使用dired-mode,最近我开始使用ido:
(ido-mode 1); enable ido-mode
(setq ido-enable-flex-matching t); flexibly match names via fuzzy matching
(setq ido-everywhere t); use ido-mode everywhere, in buffers and for finding files
(setq ido-use-filename-at-point 'guess); for find-file-at-point
(setq ido-use-url-at-point t); look for URLs at point
(setq ffap-require-prefix t); get find-file-at-point with C-u C-x C-f
Run Code Online (Sandbox Code Playgroud)
当我C在一个直接缓冲区中复制一个文件(带)时,我仍然需要使用"标准方式"来给出复制文件的新位置.这意味着,我必须使用标准的TAB完成,但没有ido完成.这同样适用于R移动文件等.因此,我想知道是否有可能得到ido同样作用于C或R在dired缓冲区?
当我浏览文件系统时,我设法在一个窗口中进行直接工作.
改进了人体工程学,我决定为我最常用的目录创建书签,其中包括短名称:'lwt','eve'等.但每次打开书签时,都会创建新的dired缓冲区,即使旧的存在也是如此.
如何让它在现有的dired缓冲区中打开书签?
我有以下函数,它对我在 dired 缓冲区中标记的文件运行 ediff:
(defun mkm/ediff-marked-pair ()
"Run ediff-files on a pair of files marked in dired buffer"
(interactive)
(let ((marked-files (dired-get-marked-files nil)))
(if (not (= (length marked-files) 2))
(message "mark exactly 2 files")
(ediff-files (nth 0 marked-files)
(nth 1 marked-files)))))
Run Code Online (Sandbox Code Playgroud)
它仅适用于同一目录中的文件,如何使其适用于我在不同目录中标记的文件?
我最近开始dired认真使用C-x C-j,在这个问题的答案之一中,已经姗姗来迟地检查了使用的建议."跳跃"功能与承诺的一样有用,并让我dired认真调查.一个障碍是我不能将目录分组到dired缓冲区中的文件上面.我已经尝试将以下内容放入我的.emacs.d文件中,但它没有任何效果,可能是因为我在Windows上运行.
(setq dired-listing-switches "--group-directories-first -alh")
Run Code Online (Sandbox Code Playgroud)
如何dired在Windows 7的缓冲区中实现文件上方的分组目录?
[编辑]根据下面的答案,dired-sort-menu似乎工作 - 见下面的截图.

我在Ubuntu 12.04上使用Gnu Emacs 24.3.我dired+.el从这里下载:http://www.emacswiki.org/emacs/dired%2b.el.然后我尝试在Emacs中对此文件进行字节编译.我做了一个文件bytecomp.el:
(byte-compile-file "dired+.el")
Run Code Online (Sandbox Code Playgroud)
并运行以下命令:
bash$ emacs -batch -l bytecomp.el -kill
Run Code Online (Sandbox Code Playgroud)
并收到以下错误消息:
In toplevel form:
dired+.el:1114:1:Error: Cannot open load file: dired+
Run Code Online (Sandbox Code Playgroud)
将文件更改bytecomp.el为:
(add-to-list 'load-path "~/emacs/test/bytecompile")
(byte-compile-file "dired+.el")
Run Code Online (Sandbox Code Playgroud)
并emacs -batch -l bytecomp.el -kill从同一目录(~/emacs/test/bytecompile)运行给出另一个错误消息:
Recursive load: "/home/fcihh/emacs/test/bytecompile/bytecomp.el", "/home/fcihh/emacs/test/bytecompile/bytecomp.el", "/home/fcihh/emacs/test/bytecompile/bytecomp.el", "/home/fcihh/emacs/test/bytecompile/bytecomp.el", "/home/fcihh/emacs/test/bytecompile/bytecomp.el"
Run Code Online (Sandbox Code Playgroud)