2

我正在修补将我的 IDE 切换到 emacs。(我仍然是 emacs 新手。)问题是我很好地定制了我的 IDE,我很遗憾把我的助手抛在后面。

在此处输入图像描述

让我解释:

  1. 显示当前打开的文件/缓冲区,允许使用热键(C-1、C-2、...)快速切换
  2. 显示“剪贴板”上的最新文本或完整插入(第 4 号),可使用热键插入的文本(Cb 1,Cb 2,...) 最后插入以粗体显示,可使用 C-` 插入
  3. 最后插入的完整(第 4 号)文本,可使用 M-` 插入
  4. 自动完成列表,从所有打开的文件中收集,无论它们的类型如何,都有一些神奇的逻辑。可使用热键插入的文本(M-1、M-2、...)

我猜 emacs 有这样的功能,但我是一个视觉类型,我想看看我有什么可用的。当然,实际的热键并不重要,但正如您所见,所有这些信息都是可见的,这样就可以轻松地用最少的按键击中目标。

我的痛苦是有大量提供各种功能的 emacs 扩展,检查所有似乎需要一生的时间。

我的问题是:

  • 是否有任何 emacs 扩展来实现类似的外观和行为?
  • 作为一名程序员,我可以将哪些扩展作为基础来组装这样的东西?

谢谢!


详细说明:

我是 python 开发者,所以我写的大部分代码都是 python。在图片中添加一些 HTML JS CSS XML。一件重要的事情是完成需要跨越文件类型边界,因为 python / HTML(template) / XML(config) / doctest 标识符是交叉引用的。对于某些 IDE,完成仅适用于 python 文件类型是一个巨大的痛苦。

  1. 我有很多相同名称的文件,但在不同的文件夹中,例如init .py、configure.zcml 等。按文件名在这些文件之间切换似乎很痛苦。

  2. 最好说这是最近插入的文本列表。被尽可能少的键重用。通常在编码时,我会在同一任务中重用相同的标识符/任何内容。因此,将它们列出来很方便,而不必重新输入起始 x 字符以再次完成。

  3. 通常最好在更改/重构代码时使用此功能。就像添加一个额外的功能,并且需要多次使用标识符。

4

3 回答 3

4

TL;博士

学习键盘宏。学习 yasnippet。
自动完成模式可能与您所拥有的类似。
在尝试更改之前先熟悉 emacs kill-ring,它想成为你的朋友。然后,当您确实想要更改它时,您就会知道要寻找什么。


长版

显示当前打开的文件/缓冲区,允许使用热键(C-1、C-2、...)快速切换

为此,您有三个选择。

  1. 我个人的偏好是始终打开所有源文件。所以我不需要打开缓冲区的可视化列表。每当我想切换到我点击的文件C-=(我已经绑定到iswitchb-buffer)并输入几个独特的字母时。经常在相同的两个缓冲区之间切换是很常见的,所以我也绑定C-backspace到前一个缓冲区。
  2. 我可以推荐的另一个选项是 tabbar。它与您的设置不完全一样,但它显示了一个打开的缓冲区列表(就像浏览器中的网页一样),并且它具有循环浏览选项卡的功能,因此重现您的 C 数字键绑定应该不难。
  3. 您可以使用 speedbar 或 ecb。它们将与您当前的视觉配置最相似,但我认为其他选项更有效。

显示“剪贴板”上的最新文本或完整插入(第 4 号),可使用热键插入的文本(Cb 1,Cb 2,...) 最后插入以粗体显示,可插入...

我看到您将剪贴板与完成历史混合在一起。谈到 emacs,yasnippet 和自动完成功能非常好,您最好使用它们来完成(见下文)。

Emacs 剪贴板被称为 kill-ring。我相信你知道C-yand M-y,所以你总是可以恢复你过去剪掉的任何东西。不幸的是,我不知道有任何软件包会不断显示杀伤环或允许您拉出它的特定部分(尽管这应该不难写),但至少您知道要搜索什么(杀死-戒指)。


最后插入的完整(第 4 号)文本,可使用 M-` 插入

老实说,我看不出这有多大用处。如果你必须重复插入文本,你应该学习键盘宏。事实上,无论如何你都应该学习键盘宏,它们是我迷上 emacs 的第一个原因。


自动完成列表,从所有打开的文件中收集,无论它们的类型如何,都有一些神奇的逻辑。可使用热键插入的文本(M-1、M-2、...)

Emacs 有很多很棒的补全选项。在您的情况下,最好的可能是自动完成模式。它会弹出完成选项(很像您单独的完成窗口),我认为它允许快速选择特定选项(例如您的 M 号快捷方式)。它还有几种不同的方法来决定为您提供哪些完成(它称它们为“源”),其中一种是从所有缓冲区中收集。

除此之外,您还有 yasnippet,我推荐的再多不过了。严重地。学习使用它并编写自己的代码片段将改变你编写代码的方式。您将成为一名法师,他的手指会以惊人的速度在您的屏幕上生成代码页。使用 yasnippet!
配置完成后,您每按 3 或 4 个键就会为您生成一行(或更多)代码。


毕竟,如果您仍然错过以前的编辑器中的某些内容,您将自己编写。:-)

于 2013-08-11T23:04:46.807 回答
2

您的设置看起来与https://github.com/emacsmirror/ecb完全一样。至少对我来说,因为我不使用侧边栏:)

于 2013-08-11T14:00:40.780 回答
2

你应该看看扩展speedbar。我已经安装了这个扩展,但即使是非常大的项目,我也很少使用它。

于 2013-08-11T14:26:04.767 回答