我經常碰到C代碼而沒有摺疊。如果沒有摺疊,尤其是在長文件的情況下閱讀它們是令人惱火的。我怎樣才能摺疊它們?如何在Vim中自動摺疊長C代碼?
回答
要根據語法
:set foldmethod=syntax
如果你想要做手工,你要摺疊起來
:set foldmethod=manual
然後通過選擇/移動並壓緊ZF 創建新的褶皺位折例如
shift-v j j zf
(忽略空格)
編輯:又見這個答案的評論對縮進和標記foldmethods。
在vi中(相對於VIM)的回答是:
:set wm=1
這設置渦卷餘量於一個字符的行的結束之前。這不是具有可變尺寸窗口的世界上最好的規格(當難以改變尺寸時,它對綠色屏幕有意義)。
這意味着還有另一種方式做到這一點在vim:
:set textwidth=30
我想你可能混合的術語。你需要「包裝」還是「摺疊」?包裝是指由於其長度而不適合屏幕的線條被包裹,即顯示在屏幕上的幾條連續線條上(實際上,它是一行,幾行 - 難以解釋,最好看到實踐)。
在VIM包裹由
:set wrap
設置爲打開它,並
:set textwidth=80
以確定Vim應該自動換行(80個字符通常是一個很好的量度)。
摺疊另一方面是完全不同的問題。它是vim將幾行代碼(例如,一個函數)摺疊成一行代碼的地方。這對提高代碼的可讀性很有用。 Vim有多種摺疊方式,你可以看到所有這些,如果你
:help folding
你正在尋找的,我想會是這樣,語法摺疊什麼,但我可能是錯的。我建議閱讀幫助頁面,它不長,並且非常有用。
的你可能要設定
:set foldmethod=syntax
但不要手動將在!這錯過了Vims最大的特點之一,那就是已經內置了數百種文件類型的自定義設置。爲了達到這個目的,把它添加到你的〜/。vimrc
filetype plugin on
filetype indent on
filetype檢測主要基於擴展名,在本例中爲* .c文件。有關更多信息,請參閱:help:filetype。您也可以自定義這些基於文件類型的設置。
實際上,還有另外一種非常直接有效的方法,它使用foldmethod = marker
和設置foldmarker
爲{,}
。然後摺疊結果將如下所示:
- 摺疊的所有功能。基本上,它看起來像IDE中的輪廓。 (你也可以
set foldlevel=1
或更多,如果你不想在一開始一切倍)
- 這是一個正常的功能是什麼樣子時,你可以通過
zo
以level-1打開它。
另外,做語法摺疊需要一點額外的工作,這裏是一個關於它的好tutorial。但我認爲摺合marker={,}
已經足夠了,最重要的是它簡單而整齊。
我已經卷起了fold plugin for C and C++。它超越了語法摺疊所做的事情(可能會改進,我不知道),並且與基於縮進和基於標記的摺疊相比,葉子的噪音更小,展現的並不是真正有用的東西。警告:爲了有良好的反應時間,我不得不做一些簡化,有時結果相當混亂(我們必須鍵入zx
來修復它)。
這裏是一個小截屏看到插件如何摺疊正確平衡的C++源代碼,這是沒有被修改:(
- 1. 如何使用vim摺疊C代碼?
- 2. 如何在VIM中的Python源代碼中摺疊長文檔?
- 3. VIM中的摺疊代碼
- 4. Vim代碼摺疊爲Scilab
- 5. vim中的自動ruby摺疊
- 6. 自動摺疊vim中的#defines
- 7. 如何在Vim中啓用自動摺疊?
- 8. PyCharm代碼摺疊摺疊
- 9. Vim代碼摺疊 - 重新映射快捷鍵以切換代碼摺疊
- 10. 崇高自動摺疊代碼
- 11. 如何摺疊之間的所有代碼{{{和}}}在vim
- 12. 如何摺疊(摺疊)Doxygen默認在vim中註釋?
- 13. 在VIM中摺疊C預處理器
- 14. 代碼在gtksourceview中摺疊
- 15. 目錄在Vim中摺疊
- 16. 自定義代碼摺疊 - 代碼摺疊任何我想要的(記事本+ +)
- 17. Vim Markdown摺疊?
- 18. 是摺疊的嗎? - 如何檢查在VIM摺疊
- 19. 打開新標籤在Vim中撤銷代碼摺疊
- 20. 如何摺疊Eclipse中的代碼塊?
- 21. 如何在vim中自動格式化/縮進C代碼?
- 22. 代碼摺疊代碼
- 23. 如何在Visual C++ 2010中禁用代碼摺疊
- 24. 如何摺疊Vim中的類塊?
- 25. 集錦摺疊/摺疊JavaScript代碼
- 26. 如何在Vim中摺疊C++風格的註釋?
- 27. 如何在vim中使用類似於c程序的摺疊
- 28. VSCode代碼摺疊
- 29. Aptana代碼摺疊?
- 30. Textmate代碼摺疊
好的建議,但我覺得OP是詢問有關代碼摺疊,而不是換行符 – ephemient 2009-04-17 22:06:31
行;'代碼摺疊'不是我之前遇到的術語,所以我接受修改 – 2009-04-18 04:46:22