如何使用Emacs作为终端和编程

时间:2015-04-03 10:23:52

标签: macos emacs terminal iterm

我目前正在使用emacs和iTerm。 iTerm只是因为我无法编辑文本而让我发疯,并且在尝试将光标从长命令的一端移动到中间时我正在睡着。

所以,我想用Emacs做终端。

但是,我觉得要坚持“终极世界”和“编程世界”的分离。

我有一个Mac OS命令用于切换到iTerm(从任何窗口),这是我想在Emacs中做的事情:在操作系统的任何地方,按一个键命令,最后进入Emacs中的终端。

iTerm中的

C-w允许我关闭终端,C-t会打开一个新标签。运行良好(虽然我认为在Emacs中只需要在单个命令中使用“杀死当前终端并生成新的终端”这样的东西是多么容易)。

请注意,在iTerm中切换缓冲区也很容易,没有机会切换到“无用”缓冲区(对于终端),例如*scratch**messages*。不过,我发现它们在编程世界中很有用。

每当我专门进入Emacs时,我的编程环境就准备好了。

我怎样才能充分利用这两个世界?即让它们分开并且易于访问,或者将Emacs设置为使得它们可以在没有麻烦的情况下生活在同一个空间中?

2 个答案:

答案 0 :(得分:1)

无论您是使用Emacs GUI(推荐)还是终端版本,无论您是使用新的Emacs实例还是使用emacsclient连接到服务器或守护程序中的另一个实例模式,你可能想要的是:

M-x ansi-term

它将使用您的默认shell提示您,通常是/ bin / bash,按回车键,您在缓冲区中有一个完整的shell。这里最棒的是你可以用你喜欢的任何类似的交互式东西替换默认的shell,让它按照你在终端中所期望的那样运行。所以在我的情况下,我会定期使用Python解释器而不是bash。在更多类似Emacs的行为和更类似终端的行为之间进行交换有一些小怪癖,但除此之外。默认情况下,它们与C-c C-j和C-c C-k绑定。

我建议你和他们一起玩一段时间来适应他们。我最终将M-x ansi-term位绑定到其中一个功能键。

答案 1 :(得分:0)

我使用了很多emacs的shell-modehttp://wikemacs.org/wiki/Shell

我喜欢shell缓冲区就像一个常规的emacs缓冲区,即:它是全文。所以我可以

  • 在缓冲区中搜索(或helm-swoop),
  • 我可以根据需要更改关键字的字体颜色等。
  • 我可以点击网址
  • 我可以使文件名可点击(在编译时非常有用)
  • 我可以比zsh
  • 更好地完成shell
  • ...

我经常使用两个技巧:包shell-here在当前目录中打开一个shell(不确定它是否是正常行为)和shell-pop,弹出一个shell窗口。在结合中,我大量使用elscreen来拥有更多的工作区域。链接中还有更多提示,请告诉我您的想法!