2013-08-18 31 views
37

VS2013添加了自動格式化爲C++。我在自動格式化個人的看法是,它的開發者最終有害,但我必須接受並不是所有人都同意。什麼錯誤是我似乎無法完全禁用自動格式化。我曾經工具 - 下未選中複選框的每個>文本編輯器 - > C/C++ - > Formatting->常規然而,當我鍵入:如何關閉自動格式化VS2013的C++?

void f() 

VS2013與

void f() 

替換本那不是代碼 - 標準在這個特定的項目,這意味着我不得不回去插入一個空間。還有其他的例子,我必須與VS戰鬥。

我不想因爲

  1. 我在多個項目不同的代碼標準
  2. 我不相信自動格式化,所以我只是希望它走出來更改間距設置我的方式

我只想VS不自動修改我的代碼。

PS。我不反對那個VS可以格式化代碼,但我想要手動調用

+2

我也有一個項目,有這種奇怪的標準有返回類型和函數名稱之間的空間。即使在項目之間切換大腦有時也很難。 –

+1

@Mehrdad:謝謝,我編輯了我的答案,所以更明顯。 AFAIK沒有最佳解決方案。 –

+0

看來這是VS2013中的一個bug,可能會在VS2013 RTM中修復。那麼,如果有的話,我會將哪個回答標記爲答案? – FuleSnabel

回答

36

您可以通過進入選項對話框從工具菜單,選擇文本編輯器C/C++/C#格式化關閉自動C/C++/C#代碼格式化→一般頁,並取消選中所有的箱子那裏。當所有自動格式設置關閉時,您仍然可以手動進行格式化。

enter image description here

+1

這是在問題中提到的。 –

+0

這就是我的想法,但VS2013拒絕停止自動格式代碼,如:f()到f()。 – FuleSnabel

+5

事實證明,這是Visual Studio 2013 Preview中的一個錯誤 - 當括號/括號完成發生時,自動格式化始終在運行。我們正在添加一個新選項來配置此行爲。感謝您指出。 –

8

我知道這不是你正在尋找的答案,文本編輯器> C/C++>格式化>間距和在函數間隔的間距您檢查選項在函數名稱和參數列表的開括號之間插入空格

+1

謝謝。不,我知道我可以更改代碼樣式設置,但是我的問題是我使用不同的設置爲多個項目做出貢獻。來回切換是一種痛苦。我只想禁用自動格式化。最後,如果我不能關閉它,我可能必須按照你的建議去做。 – FuleSnabel

3

它在VS 2013 Beta版中的錯誤,它不能完全關閉,請提交FuleSnabel問題:http://connect.microsoft.com/VisualStudio/feedback/details/797716/turning-off-auto-formatting-for-vs2013-c-only-seems-to-partial-disable-auto-formatting。 一些可能的解決方法:

  1. 如果你只是窺視到具有不同/怪異風格的一些項目:如果不希望自動格式化情況,那麼你可以執行一個撤消一步,這應該撤消只的自動格式化部分操作而不是你的貢獻。幸運的是,這兩個(或者有時候更多的自動格式化步驟)並沒有組合成一個命令,可能出於這個確切原因:您可以返回並覆蓋它。如果這種情況一直髮生,那很煩人。您可以配置行爲以符合你的風格,但你說你有不同的代碼風格的項目。
  2. 工具/導入和導出設置... - 您可以導出特定項目的特定設置,然後再導入它。這將節省.vssettings XML格式的文件。如果僅僅是一種特定的文件類型,那麼它可能只有幾千字節。不幸的是這需要手動步驟。如果可以從解決方案配置文件或項目配置文件中覆蓋這些設置,那麼最好的辦法可能就是其中的一部分。
  3. 請注意,如果您真的在同時打開Visual Studios的項目中同時工作,則此第二點是有問題的。在這種情況下,設置將會最終保存最後關閉的VS實例。保存解決方案

具有不同的自動格式可以爲下一個版本(當然不是讓到VS 2013)功能要求。我通常遇到的是製表符/空格縮進行爲差異,這是項目樣式中最常見的差異。縮進也可以針對大多數文件類型單獨配置,但就您的情況而言,項目可能會有所不同,然後會變得煩人。

1

轉到:

工具 - >選項 - >編輯 - 文本> C/C++ - > Formatting->間距

然後取消或選擇,涉及到你正在寫的代碼類型的箱子。

6

我也有這個問題,取消選中格式選項中的所有複選框沒有幫助。

事實證明,這是由Whole Tomato Software的插件「Visual Assist X」中的一個選項引起的。

在我的情況下,這個問題可以通過轉到「Visual Assist Options」 - >「Corrections」並取消勾選複選框「粘貼後的格式」來解決。

3

只要記住,resharper也可以覆蓋縮進/格式設置。你可以通過這樣做關閉

ReSharper - >選項 - >環境 - >編輯器 - >編輯器行爲 - >自動格式化大括號(取消選中此項)。

enter image description here

0

要關閉自動完成梅開二度,請訪問:

工具>選項>文本編輯器>所有語言>常規>自動完成梅開二度

...然後取消選擇「自動梅開二度完成」。