在 VS 2013 中使用空格键提交 C++ Intellisense 建议

Posted

技术标签:

【中文标题】在 VS 2013 中使用空格键提交 C++ Intellisense 建议【英文标题】:Commit C++ Intellisense suggestion with space bar in VS 2013 【发布时间】:2013-12-18 21:52:12 【问题描述】:

在专门使用 C# 一段时间后,我最近开始探索 C++。我正在使用 Visual Studio 2013,而让我心烦意乱的一件事是无法通过按空格键来提交 Intellisense 建议。我试图在选项 -> 文本编辑器 -> C/C++ -> 高级中编辑提交字符列表以接受空格键,但到目前为止我没有运气。来自 C#,这非常令人恼火。有谁知道是否有可能做出这样的改变?我知道我可以使用 Tab 或 Enter,但我认为使用 Space 更加流畅。

任何信息将不胜感激。

更新: Space 似乎提出了一些建议,但没有提出其他建议。如果我输入“std::stri”,它会提交“std::string”。不幸的是,Intellisense 不会提交我创建的任何内容,甚至不会提交常见的关键字。它只是在我已经输入的内容之后添加一个空格。

【问题讨论】:

2013我没用过,但是2010我可以用空间了。但是,我习惯了使用制表符,因为似乎没有其他编辑器使用空间。不使用 VS 时,它让我的生活更轻松。 如果没有解决方案,我会习惯使用制表符。在专门用 C# 编码一年多之后,这将需要一些精神上的重新布线......我想它就是这样。 我可以确认空间在 2012 年适合我。很遗憾,我没有 2013 年的副本来测试它。 【参考方案1】:

我对您的问题的进一步评论,我已经安装了 Visual Studio 2013 (Ultimate) 的试用版,并且可以确认空格键确实可以完成 IntelliSense 建议。结合所有的 cmets,它似乎可以在以下版本中工作:

VS 2010 VS 2012 VS 2013

这是我位于 Tools > Options > Text Editor > C/C++ > Advanced 的 IntelliSense 设置的屏幕截图:

作为最后的手段,您可能想尝试将所有设置更改回默认值,如this answer 中所建议的那样:

Tools > Import and Export Settings > Reset all settings

更新:在阅读了 JoshC 的 cmets 之后,我做了更多的实验,我也遇到了问题。它似乎与您尝试自动完成的项目是否是类型或命名空间的成员有关。如果是(例如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?(见 cmets)

【讨论】:

这很奇怪。我的设置和你的一样,除了 Member List Commit Aggressive 设置为 true,但 space 没有提出建议。即使重置了所有设置,它仍然没有。我不知道是什么原因造成的。 我刚刚测试了这个。如果你 Ctrl+Space 来获取你的成员列表空间将会提交。如果你只是开始打字,我在同一条船上,空间将无法工作。我目前正在寻找一种让后者工作的方法。 @JoshC 我现在可以看到问题所在(以及一种解决方案,尽管不是我认为有用的解决方案)。答案已更新。 有人应该尝试将此作为错误报告给 VS2013 开发团队

以上是关于在 VS 2013 中使用空格键提交 C++ Intellisense 建议的主要内容,如果未能解决你的问题,请参考以下文章

C++ 我是新手 用vs2012时运行不了我想要的结果,求帮忙!!!

VS2013,C++:未知的“线程 X 以代码 0 退出”

调试信息(断点等)存储在 VS2013、本机 C++ dll 项目中的位置在哪里?

如何启用 VS2013 c++ 编译器功能?

C++ 代码在 VS2010 中工作,但在 2013 年不工作

静态库链接、c++、VS Express 2013