【问题标题】:How to use Emacs as terminal and for programming如何使用 Emacs 作为终端和编程
【发布时间】:2015-06-08 10:26:23
【问题描述】:

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

所以,我想用 Emacs 做终端。

但是,我想坚持“终端世界”和“编程世界”的分离。

我有一个用于切换到 iTerm 的 Mac OS 命令(从任何窗口),这就是我想在 Emacs 中执行的操作:从 OS 的任何位置,按一个键命令并最终进入 Emacs 的终端。

iTerm 中的C-w 允许我关闭终端,C-t 打开一个新选项卡。效果很好(尽管我认为在 Emacs 中只需一个命令就可以很容易地使用“杀死当前终端并生成新终端”之类的东西)。

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

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

我怎样才能两全其美? IE。将它们分开并易于访问,或者设置 Emacs 以便两者可以毫不费力地生活在同一个空间中?

【问题讨论】:

  • 两个独立运行的程序怎么样?您可以运行 Emacs 的图形版本,无论是最小化还是在其下方,或者共享屏幕空间,或者在不同的工作空间中。 iTerm 也是如此。您可以慢慢摆脱 iTerm,并在 Emacs 中拥有专门用于终端相关项目的缓冲区。您可以在 Emacs 中为终端项目设置单独的框架。查看 Alp Aker 的帧缓冲区以将某些缓冲区与特定帧相关联。您可能还对 Emacs 的 elscreen 或 tabbar 库感兴趣。

标签: macos emacs terminal iterm


【解决方案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 位绑定到其中一个功能键。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多