Emacs如何设置快捷键,实现打开外部图形界面程序

想实现的功能: emacs快捷键,快速打开外部图形界面程序,比如linux的terminal或者nautilus。而且保证emacs关闭后,该外部命令进程不会退出。

我会设置emacs快捷键。shell-command命令我也了解,嫌弃它操作不直接。 谁能指导一下如何实现上述功能,非常感谢。

已结,谢谢楼下有缘人。期望答案在5楼,经实验ok。

counsel 这个插件里的 counsel-linux-app

Mac 下用 M-!shell-command)和 open(1)

  • 打开终端 M-! open -a Terminal
  • 打开 Chrome M-! open -a 'Google Chrome'

打开之后的程序与 Emacs 就没关系了,所以 Emacs 退出也无没关系。此外也可以用 AppleScript,但仅仅需要打开应用的话,没多少必要。

如果是在Linux下的话,需要用nohup命令吧 M-! nohup xterm & 经测试,在ubuntu16.04+emacs25.1上是可以的

我原本的意思,是想要设置一个快捷键,来快速开启外部命令。 M-!我知道办法。但是我不能(或者不会)把“M-! command”设置成快捷键。

写一个命令,再绑定按键。

;; 定义命令
(defun open-some-app ()
  (interactive)
  ;; M-! 对应 shell-command
  (shell-command "command"))

;; 绑定按键
(global-set-key some-key 'open-some-app)

之前就是这种方法,可是没成功。应该是因为在windows系统做的试验,晕脑了吧。 明天去公司用linux主机试验一下。 谢谢你的答案。

如果是debain或ubuntu的话,试试 GitHub - lujun9972/el-start-menu: start-menu for executing external program like in windows

哈哈,看起来我们大emacs又干掉了program launcher,以后程序又可以少装一个了:wink: