2013-12-18 39 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