使用“sidebars”自定义emacs

时间:2013-08-11 13:51:09

标签: emacs ide

我正在修改我的IDE切换到emacs。 (我还是一个emacs新手。) 问题是我很好地定制了我的IDE,我很遗憾留下我的助手。

enter image description here

让我解释一下:

  1. 显示当前打开的文件/缓冲区,允许使用热键快速切换(C-1,C-2,...)
  2. 显示“剪贴板”上的最新文本或完整插入的文本(编号4),可用热键插入的文本(Cb 1,Cb 2,...)最后插入以粗体显示,可插入C-`
  3. 最后插入的完整(第4号)文本,可插入M-`
  4. Autocomplete-ish列表,从所有打开的文件中收集,无论其类型如何,都带有一些神奇的逻辑。可以使用热键插入的文本(M-1,M-2,...)
  5. 我猜emacs有这样的功能,但我是一个视觉类型,我想看看我有什么。 当然,实际的热键并不重要,但是当您看到所有信息都可见时,使用最少的按键很容易就能到达现场。

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

    我的问题是:

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

    谢谢!


    更多地阐述:

    我是一个python dev,所以我写的大部分代码都是python。在图片中添加一些HTML JS CSS XML。 一个重要的是完成需要跨文件类型边界工作,因为python / HTML(模板)/ XML(config)/ doctest标识符是交叉引用的。一些IDE完全适用于python文件类型,这是一个巨大的痛苦。

    1. 我有很多相同的命名文件,但在不同的文件夹中,如 init .py,configure.zcml等。通过文件名切换它们似乎很痛苦。

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

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

3 个答案:

答案 0 :(得分:4)

TL; DR

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


长版

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

你有三种选择。

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

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

    我看到你将剪贴板与完成历史混合在一起。说到emacs,yasnippet和autocomplete非常好,你最好跟他们一起完成(见下文)。

    Emacs剪贴板称为杀戮戒指。我确定你知道C-yM-y,所以你总能找回你过去削减过的东西。不幸的是,我不知道任何不断显示杀戮戒指或允许你抓住它的特定部分的包(虽然这不应该太难写),但至少你知道要搜索什么(杀-环)。


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

    我会说实话,我认为这并没有多大用处。如果必须重复插入文本,则应学习键盘宏。事实上,无论如何你应该学习键盘宏,这是我迷上emacs的第一个原因。


    Autocomplete-ish列表,从所有打开的文件中收集,无论其类型如何,都带有一些神奇的逻辑。可以使用热键插入的文本(M-1,M-2,...)

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

    除此之外你还有yasnippet,我不太可能推荐它。说真的。学习使用它并编写自己的代码片段将改变你编写代码的方式。你将成为一名法师,他的手指会以极快的速度生成穿过屏幕的代码页。 使用yasnippet!
    配置好后,按下的每3或4个按键都会为您生成一行(或多个)代码。


    毕竟,如果您仍然遗漏了之前编辑的内容,您将自己编写。 : - )

答案 1 :(得分:2)

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

答案 2 :(得分:2)

您应该查看扩展程序speedbar。我已安装此扩展程序,但即使是非常大的项目,我也很少使用它。