2013-12-18 37 views
7

我最近在使用C#之后不久就开始探索C++了。我使用的是Visual Studio 2013,唯一让我烦恼的是无法通过按空格键来提交Intellisense建议。我试图在选项 - >文本编辑器 - > C/C++ - >高级中编辑提交字符列表来接受空格键,但到目前为止我没有运气。来自C#这是非常加重。有谁知道是否有可能做出这样的改变?我知道我可以使用Tab或Enter,但在我看来,使用Space更加流畅。在VS 2013中使用空格键提交C++ Intellisense建议

任何信息将不胜感激。

更新:空间似乎提出一些建议,但不是其他人。如果我输入“std :: stri”,它会提交“std :: string”。不幸的是,Intellisense不会提交任何由我创建的东西,甚至是通用的关键字。它只是在我输入的内容后面添加一个空格。

+0

我没有用过2013,但在2010年,我可以使用的空间。不过,我习惯了tab,因为没有其他编辑器似乎使用空间。当不使用VS时,它使我的生活更轻松。 – David

+0

如果没有解决方案,我会习惯使用标签。在C#中完成一年多的编码之后,它会需要一些精神重新布线......我猜这就是它的样子。 –

+0

我可以确认2012年的空间适合我。我没有2013年的副本,不幸测试它。 – JBentley

回答

3

除了我对您的问题的评论,我已经安装了Visual Studio 2013(Ultimate)的试用版,并且可以确认空格键的工作方式来完成IntelliSense建议。综合所有的评论,它会,它的作品出现在以下版本:

  • VS 2010
  • VS 2012
  • VS 2013

这里是位于Tools > Options > Text Editor > C/C++ > Advanced我的智能感知设置的屏幕截图:

IntelliSense settings

作为最后一招,你可能要尝试改变所有的设置恢复到默认值,如this answer建议:

Tools > Import and Export Settings > Reset all settings

UPDATE:阅读JoshC的意见后,我已经尝试多一点和我得到的问题太。它似乎与您尝试自动完成的项目是否是类型或名称空间的成员有关。如果是(例如std::string),那么空间将起作用。如果不是(例如void),那么它将不起作用(但出于某种原因,选项卡将工作)。根据this link,您可以通过按CTRL + J手动调用“列表成员功能”,在这种情况下,它将包含全局命名空间中的项目 - 但这显然不是一个实际的解决方案。

我不知道为什么它以这种方式区分空间和标签。如果有人知道解决方法,请让我知道,我会再次编辑此答案。

下,似乎暗示有对C无解++:

http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2656132-support-committed-by-pressing-the-space-bar-in-c

When using Visual Studios 2012 for coding in C++, how do you autocomplete code selected in IntelliSense?(见注释)

+0

这是奇怪的。我的设置与您的设置完全相同,“将成员列表提交侵略性”设置为true除外,但空间并未提出建议。即使重置所有设置后,它仍然不会。我不知道是什么原因造成的。 –

+1

我刚测试过这个。如果您按Ctrl +空格来获取您的成员列表空间将提交。如果你只是开始打字,我在同一条船上,空间不起作用。我正在寻找一种方法来让后者工作。 –

+0

@JoshC我现在可以看到问题是什么(和一个解决方案,尽管我认为不是一个有用的解决方案)。答案已更新。 – JBentley