有哪些方法可以提高Emacs的生产力?[关闭]


20

我已经使用了Emacs了很多,并且对最基本的命令/快捷方式很满意,但是我知道Emacs提供的功能比我正在使用的要多。emacs鲜为人知的哪些功能可以帮助我成为更有效率的程序员?


8
@投票结束的人:这绝对不是题外话……
Chinmay Kanchi 2010年

1
如果这不是主题,我想本网站的主要目的是针对“告诉我您最喜欢的故事”类型的问题。
MIA 2010年

2
我不认为这可以被认为是题外话。如果我在Stack Overflow上问这个问题,那可能会在主观上被关闭。因此,如果这两个网站都不适合,我应该在哪里提出这样的问题?
GSto

生产程序员诶..
丹尼尔·利特尔

2
我投票结束这个题为离题的问题,因为它询问的是软件工具。但是,它太宽泛且太旧,无法迁移到Stack Overflow。

Answers:


17

学习elisp。

  1. 它允许您编写任何可以想到的快捷方式。每当您发现自己对有用的东西执行多步骤过程时,都可以利用该函数创建一个函数并将其绑定到热键组合。

  2. 它使您可以试验函数式编程-学习新的范例是扩大视野的好方法。


加上一定程度的流利程度,将打开一个可配置性世界。一旦让我烦恼,我就尝试修复它。yasnippet还允许使用可编程的代码段,这些代码段可以节省大量打字工作(例如,如果您位于标头或实现文件中,请更改插入的模式以及大约一百万个其他技巧)。
julien 2010年

9

查看此SO页面,它具有足够的技巧来使您的Emacs生产率提高至少2倍:

http://stackoverflow.com/questions/60367?tab=votes&page=1

另外,如果您是Emacs用户,则绝对肯定要使用组织模式:

单位:纯文本中的生活

编辑:不幸的是,SO主持人似乎不仅关闭了第一个问题/链接,而且还删除了它,从而破坏了过程中的知识和智慧。(让我们燃烧这本书,我们不知道它属于哪里!)目前,我发现的唯一有用的替代链接是讨论SO线程的HN线程:

唯一最有用的Emacs功能-黑客新闻


SO链接不再有效
funkybro 2012年

感谢您的单挑,坚持使用其他方法,效果不佳,但有一些提示。
limist 2012年

1
您仍然可以在www.stackprinter.com上
6

@barracel谢谢!程序/服务使我们免于主持人的愚蠢。
limist

4

从我的头顶上:

M-x compile     (now do C-x ` to cycle through errors)
M-x gdb
M-x grep-find
M-x find-tag    (aka M-.  and C-u M-. is "next" tag)
inferior-processes (if you use an interpreted language, 
                    you can eval directly from Emacs)
C-x v v         ([version control][1])

通常,信息页面的“ 编译和测试程序”一章是一本好书。


4

伟大的史蒂夫·耶格(Steve Yegge)写了一篇非常不错的博客文章,用Emacs提高生产率的10种具体方法。它包括一些技巧和习惯,例如

  • 键盘配置(交换Caps-LockControl重新绑定M-X
  • 用删除单词backspace(如果您的打字机速度足够快,则删除整个单词并重新键入它比连续敲打backspace直到您的错字被消除更方便)
  • 通过增量搜索导航
  • 使用临时缓冲区并学习有效地导航缓冲区
  • 摆脱鼠标,菜单和其他GUI东西的导航
  • 学习使用帮助系统
  • 学习正则表达式的力量

他还列出了一些有用的emacs模式,并提到了许多其他技巧,使人们期待着博客文章的未来更新。


2

我知道您特别询问过方法和命令,但我建议采用以下全方位方法:

  1. 阅读有关Emacs的书:其中包括Emacs手册和Cameron Et等人的Learning Gnu Emacs。我知道“阅读手册”的声音陈腐和居高临下,但我真正想说的是,每次阅读手册,我了解的东西真的很酷,我甚至没有想到的。我总是觉得我没有花足够的时间阅读手册。
  2. 进入Emacs社区:Emacswiki是与其他Emacs用户进行交流并了解出色软件包的好地方。加入help-gnu-emacs也可能很好,因为人们会要求他们正在使用的功能的帮助,而通过代理,您可以找到这些功能。通过看到有人寻求帮助,然后在手册中阅读有关内容,我发现了许多有趣的功能。
  3. 学习一些Lisp:至少可以讨论Emacs Lisp时,您将在一个更好的地方学习新功能。
  4. 一直使用Emacs。我将Emacs用于除Web浏览之外的所有功能(您也可以这样做),因此,我总是有机会学习如何使用Emacs提供的某些功能更好地做一些新事物。我使用Emacs进行邮件计划和计划版本控制LaTeX文档编程。我几乎所有的时间都花在Emacs或Firefox上。

2

自定义工作流程的特定修改

当我开始进行测试驱动开发时,我做了一个elisp函数,使我可以轻松地在带有单元测试的文件和带有生产代码的文件之间跳转。

我还开始将yasnippets用于一些关键的语言构造,从而减少了我每天写数百遍东西所花费的时间。

最后但并非最不重要的; 我创建了luddite-mode,它只是关闭了菜单/工具栏,边缘和滚动条,迫使我尽可能多地使用键盘快捷键。


0

我经常会不时使用两个命令,分别是string-rectanglekill-rectangle。前者使您可以在多行的特定列中插入重复的文本。后者则相反。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.