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