如何在 Linux 上正确设置 emacs

如何在 Linux 上正确设置 emacs

我目前有兴趣从 vim 切换到 emacs。

其中一个更令人信服的原因是与 unix 环境的无缝集成。我见过的最有经验的 emacs 用户在他们的窗口底部有一个 bash 提示符,stdout 进入其正上方的缓冲区。然后他们以有趣的方式与 grep 等程序的输出进行交互。

我使用的是 Ubuntu 10.04,默认的 emacs 环境似乎在集成方面对我来说没什么用。例如,在这种M-x shell模式下,基本命令的输出会ls产生大量奇怪的字符,并且按向上箭头不会转到上一个命令。

关于前进的方向有什么建议吗?

答案1

关于如何获得合适的设置,您可以采用两种不同的方法:

  1. 盲目使用其他人/网页的定制(例如 Emacs 入门套件)
  2. 认真思考自己想要什么,提出问题,学习并定制自己.emacs

根据我的经验,许多人选择第一种方式,这很好。你几乎不用费什么力气就能获得一些方便的自定义功能。但是,你实际上并不比进行大规模剪切/粘贴之前知道的更多。

如果您花时间提出问题(就像您对shell和所做的那样ls),您最终会获得真正满足您需求的定制 Emcas 体验。此外,您将更好地了解什么是可能的以及如何实现目标。缺点是它需要一点工作(不多,但不是零,这让很多人感到害怕)。

因此,为了让你踏上启蒙之路(如果你决定走红色药丸),我将针对您的具体问题提供解决方案。 注意:由于有关您的设置的信息很少,我只能对您的具体问题做出一些有根据的猜测。

显示ls各种奇怪的字符,因为您ls在常规终端中输出了用于颜色的特殊字符命令(也许您将其别名为ls --color)。 M-x term确实可以正确处理这个问题,但是这也可以:

(ansi-color-for-comint-mode-on)

除了使用箭头键,您还可以使用M-pM-n转到上一个/下一个命令。或者,您可以绑定箭头键来执行您想要的操作:

(add-hook 'shell-mode-hook
      (lambda ()
    (define-key shell-mode-map (kbd "<up>") 'comint-previous-input)
    (define-key shell-mode-map (kbd "<down>") 'comint-next-input)))

答案2

您可能想尝试eshellM-x eshell),或者您可能想阅读 shell 命令的命令和快捷方式( M-x shell)。eshell是一个用 emacs lisp 编写的 shell,它与 Emacs 几乎完美集成。我唯一的抱怨是它不如普通 shell 快。

至于其他设置,我建议emacs 入门套件,其中包含许多有用的脚本和 elisp 模块,用于扩展和配置 emacs。

Emacs 需要后天培养。你所观察的人可能拥有数十年的 emacs 经验——他们一开始和你一样一无所知。我建议你尝试阅读几本关于这个主题的书——学习 GNU Emacs这是我学到的,GNU Emacs 手册是一个很好的指南和参考

答案3

我觉得您从 vim 切换到 emacs 的原因是关于 Unix 集成,以及您如何看待 emacs 人员使用 shell 缓冲区等,这很有趣,因为它表明了您对这两个编辑器的总体经验水平。emacs 和 vim 都不是您希望的那样“开箱即用”,而是作为开发工作流程的平台。

例如,vim 不具备你描述的开箱即用功能,但有类似征服插件异步,这与 emacs 不同。相反,它首先(与 emacs -- via 相同M-!)能够运行外部命令并将其导入新缓冲区 ( :r! command)。

我并不是要劝阻您使用 emacs,而是建议学习这两种语言的最佳方式是选择一种并深入研究。如果您有朋友了解 emacs,请向他们索要配置文件。询问您可能喜欢哪些插件,或者如何获得特定功能。对于有经验的人来说,最难回答的问题是“我下一步该做什么?”

如前所述,emacs 入门套件非常棒,peepcode 截屏从哪里来的。此外,学习 GNU Emacs可通过 Google Books 免费在线获取。至于我实际使用的插件,我恰好喜欢任何东西.el用于代码完成和自动配对放上匹配的括号。另外,看看果酱了解您所使用的语言和环境可能感兴趣的内容。这将引导您回答有关特定功能的更多指导性问题。

祝您的编辑任务顺利!

答案4

使用 Mx ansi-term 而不是 Mx shell - 这样,您将在 Emacs 中拥有一个真正的终端仿真器。它并不完美,但它与 mutt、top 等 curses 应用程序配合得更好。

我还建议你看看Emacs 开发套件- 一个鲜为人知的 Emacs 入门套件替代品。尽管是 alpha 版本,但它包含许多可轻松重复使用的有用配置。

你还应该看看Emacs 维基掌握 Emacs

相关内容