去掉Visual Studio 2005的IntelliSense功能
VS的IntelliSense功能类似其他IDE中的auto-completion,也就是能够自动补全,不过和VI和Emacs中的auto-completion不一样,IntelliSense比较Intelligent,根据编程语言的语法来谈出备选填,比如有下面的code:
class Peon {
public:
void Work();
};
class Warrior {
public:
void Wallop();
};
void foo() {
Peon p;
p.W
在输入"p.W"之后,使用VI的autocompletion,只是把可以用的W开头的词全拿来作为备选项,这样Work、Warrior、Wallop都是,其实p是一个Peon类型的变量,后面不可能是Warrior或者Wallop,但是IntelliSense可以根据语法排除掉这两个干扰项。
这本来是个不错的功能,但是对C++这样的语言,需要语法分析源代码,每更改一次code都有可能引发IntelliSense更新.ncb文件,而IntelliSense比Java的垃圾回收还不识相,非但往往做的不合时宜,而且会占用很多时间。对于一个包含多个Projects的Solution,VS环境很容易僵死,左下角一个"Updating IntelliSense"的提示。
很可惜,VS到2005还没有Disable掉这个功能的UI,所以只好用些非常手段来Disable这个有时候比较讨厌的功能了。IntelliSense会不断更新Solution的.ncb文件,把这个文件弄成Read-only,然后确认一堆的对话框是个办法,但是太麻烦,最简单直接的办法,需要一点壮士断腕的勇气,就是把VS安装目录下的VC/vcpackages/feacp.dll去掉,这个DLL就是管IntelliSense的,然后这个世界就清净了。
注:去掉IntelliSense功能之后,VS 的 ClassView 将会失效,也即看不到任何信息。