2014-12-02 209 views
1

我对gnu emacs有点新,所以也许这是一个noob问题,但我有一些批处理文件,我在编译emacs时编译/编译/执行/调试时使用了很多/等等。我想知道我怎么能A)从emacs运行这些批处理文件,而不必打开一个cmd提示窗口或去Windows资源管理器和B)绑定到一个快捷键(也许我可以指定文件?)我已经看到几个网上关于在批处理模式下运行emacs的事情,但我不相信这是我正在寻找的东西。我知道这是可能的,因为我已经看到其他人从emacs运行批处理(输出和一切都会出现在与当前相邻的新缓冲区中,就好像你做的那样)从Emacs运行Windows批处理文件

在此先感谢!

回答

0

要在Emacs中运行一个任意的shell命令,你需要调用shell-command,它绑定到M-!

参见C-H˚Fshell-command(或C-HķM-!)的详细信息。

我相信Windows原生Emacs,默认外壳是cmd(或其别名),所以我有理由相信这是你的想法。

我不知道所有的在Windows下工作,但相关的命令是否:

  • M- & - async-shell-command
  • M- | - shell-command-on-region

并配有前缀参数(例如C-ùM-!)任何这些命令将插入外壳命令的输出入电流缓冲。 (在shell-command-on-region的情况下,取代的区域。)

+0

当我尝试这一点,它告诉我它不能运行cmd.exe的。此外,我不是100%确定,如果这是我正在寻找。如果错误,请纠正我,但是您给出的建议仅适用于运行单个shell命令,因为我想执行整个批处理文件。 – BossLetsPlays 2014-12-03 17:45:34

+0

“shell命令”是任何可以从shell提示符输入的内容。如果shell是'cmd',那么“shell命令”就是你可以从'cmd'提示符执行的任何东西。我假设你的批处理文件是可执行文件,并且你可以通过指定它的名字或路径作为运行的shell命令来运行它。 – phils 2014-12-04 00:43:54

+0

我明白,但是当我尝试它时,我得到的回报是一条消息,指出system32/cmd.exe无法运行 – BossLetsPlays 2014-12-05 02:05:42