在emacs中输入时自动替换某些文本字符串

时间:2010-07-08 19:23:50

标签: emacs

有一点小小的细微差别一直困扰着我,即我经常输入#inclued而不是#include。如果不是很明显,我会编写很多C和C ++。这个错字已经破坏了无数的构建和消耗时间,本来可以更好地喝咖啡或冲浪stackoverflow。当然,emacs可以提供帮助并在我输入时纠正我的错误(当然只在cc-mode)。但是如何?

谷歌搜索和搜索stackoverflow没有提供任何答案。

5 个答案:

答案 0 :(得分:8)

您可以在abbrev-mode中使用此功能:输入#inclued后,执行C-x a i g include RET,从那时起,每次输入#inclued时,它都会自动更改为#include。如果您希望该缩写在某个模式中是本地的,请使用C-x a i l代替C-x a i g。此外,您可以使用M-x edit-abbrevs编辑缩写。

答案 1 :(得分:3)

一个比简写更好,更全局的解决方案(因为你无法预测你所做的所有拼写错误)是使用flymake(随emacs发布一起提供)。

http://flymake.sourceforge.net/

当您仍然在缓冲区中输入代码时,Flymake会检查场景背后的源代码。它强调了代码的错误(即:gcc告诉的是错误的)。

在后台运行gcc所使用的CPU不会超过防病毒软件。此外,如果您有2个或更多内核,gcc可以利用并行化。它只检查语法,而不是编译任何东西。

答案 2 :(得分:1)

如果你对某些不同的东西感兴趣,可以使用YAsnippet软件包将所有小部分写入片段,然后你可以键入类似#in的内容,点击TAB,它会扩展为......无论如何你要。

答案 3 :(得分:0)

听起来像flymake正是你所追求的。它在后台运行编译器,并在您键入时突出显示错误。

答案 4 :(得分:0)

我打算建议这对于flyspell来说可能有点奇怪,但danlei的回答看起来更好。