emacs - 如何绑定(bind) key 以在 dired emacs 中运行 shell 命令

标签 emacs dired

当我在 emacs 中使用 dired 模式时,我可以通过输入 !xxx 来运行 shell 命令,但是如何绑定(bind)一个键来运行这个命令呢?
例如,我想在一个文件上按 O,然后 dired 将运行 'cygstart' 来打开这个文件。

最佳答案

您可以使用 shell-command功能。例如:

(defun ls ()
  "Lists the contents of the current directory."
  (interactive)
  (shell-command "ls"))

(global-set-key (kbd "C-x :") 'ls); Or whatever key you want...

要在单个缓冲区中定义命令,可以使用 local-set-key .实际上,您可以使用 dired-file-name-at-point 获取文件名。 .因此,要完全按照您的要求进行操作:
(defun cygstart-in-dired ()
  "Uses the cygstart command to open the file at point."
  (interactive)
  (shell-command (concat "cygstart " (dired-file-name-at-point))))
(add-hook 'dired-mode-hook '(lambda () 
                              (local-set-key (kbd "O") 'cygstart-in-dired)))

关于emacs - 如何绑定(bind) key 以在 dired emacs 中运行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8397319/

相关文章:

emacs - 将多个 Emacs 键绑定(bind)分配给单个命令?

git - 我如何告诉 Emacs 我的 git 分支已经改变了?

javascript - 在服务器和浏览器上使用 Macchiato 框架的 CIDER

emacs - 查找文件 : Getting a dired buffer of files specified by filter containing text

emacs - Dired - 在另一个 Emacs 窗口中打开文件

emacs - Emacs烦死了:信息太多

emacs - Org-mode 8 中的 Fontify R 代码块

windows - ediff 在 Windows 上的 emacs 中不起作用

emacs - Dired:对所有选定文件和目录的一次确认

Emacs find-grep-dired 然后在给定的正则表达式上自动 isearch-forward