【问题标题】:customizing emacs with "sidebars"使用“侧边栏”自定义 emacs
【发布时间】:2013-08-12 21:59:35
【问题描述】:

我正在考虑将我的 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. 通常最好在更改/重构代码时使用此功能。就像添加一个额外的功能,并且需要多次使用标识符。

【问题讨论】:

  • 1.我同意当您有多个具有相同名称的缓冲区时,我给您的第一个选项不是很好。不过,选项 2 和 3 应该仍然可以正常工作。 Tabbar 更容易设置(具有相同的实际效果),但 ecb 应该能够重现您现在拥有的确切侧边栏视觉效果。
  • 2.这个最近插入的列表是你唯一可能不得不真正放弃的东西。这听起来真的很有用,但我还没有看到类似的东西。事实上,你让我想要类似的东西。 :-) 我会针对类似的事情进行更多调查。
  • 3.如果您想多次插入某些内容,最好的方法是复制/粘贴或键盘宏。如果您需要它来替换某些东西(例如在重构时),则查询替换会更好(它不是包,而是常规功能)。最后你还可以选择多游标包,我给你留个视频看看它做了什么youtube.com/…

标签: emacs ide


【解决方案1】:

TL;DR

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


加长版

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

为此,您有三个选择。

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

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

我看到您将剪贴板与完成历史混为一谈。对于 emacs,yasn-p 和自动完成功能非常好,您最好使用它们来完成(见下文)。

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


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

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


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

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

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


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

【讨论】:

  • 感谢您的冗长回答,我将尝试对此进行详细说明,以向您展示我对此感到满意的原因。查看问题的编辑。同时我需要一些时间来检查扩展...
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多