如何同时运行emacs和终端?

时间:2016-09-25 22:06:34

标签: emacs compilation

我一直在从终端打开emacs,但每次我想编译我的c程序时,我必须首先退出emacs,在终端上编译它,然后再重新打开emacs再编辑一些。

有没有更简单的方法来做到这一点,所以我可以保持emacs打开,同时也在终端上编译东西?

我知道这与进入shell模式有关,但我不太熟悉或者编辑init文件,因为我对emacs来说真是个新手,并且仍然试图搞清楚它

感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:3)

要在Emacs内部编译程序,请键入M-x compile并输入编译命令。作为奖励,输出中的任何错误或警告都会成为源代码中相应行的链接。

编译完程序后,有几种不同的方法可以运行它。如果它是非交互式程序,您可能会发现M-!(用于运行shell命令,等待它完成,并在缓冲区中显示其输出)就足够了。否则,您可能希望在Emacs中运行shell。您可以使用M-x eshell执行此操作。 (有些人更喜欢M-x shell;尝试两者并看看你喜欢什么。)

或者,如果您想暂时离开Emacs并返回终端,可以键入C-z将Emacs置于后台。要从shell返回Emacs,请键入%fg(表示“前景”)。要检查Emacs当前是否在后台运行,请键入jobs

答案 1 :(得分:3)

或者,它可以直接运行M-x ansi-term以在Emacs缓冲区内部有一个正常运行的终端。在Emacs中有一个工作的交互式终端,但是能够使用普通的Emacs密钥绑定导航终端输出,这很不错。

我使用此this package来确保加载所有环境变量。

答案 2 :(得分:0)

一些操作说明:

当我在Emacs中编辑某些内容并需要终端时,我通常的做法是垂直分割' C-x 2'或水平' C-x 3'为了能够与实际窗口并排打开终端模拟器(M-x eshell'或者M-x shell')。从这里可以前进和后退,使用C-x o'或者' C-u C-x o'如所须。这允许在近窗口可见的情况下继续编辑。

在极少数情况下,这些仿真器不能像真正的OS终端那样工作,我们可以在不使用图层或仿真的情况下拆分和使用本机的东西.C-x术语RET RET' 。不幸的是,在后一种情况下,不可能在框架窗口之间循环(使用' C-x o')。这里,exit命令需要能够使用emacs正常运行。