我使用了相當多的多平臺C/C++代碼,用普通的#defines(#if WIN,#if UNIX等)分隔開來。如果我可以讓vim在我打開文件時自動摺疊我目前不感興趣的部分,那將會很好。我已經通過vim腳本檔案進行了搜索,但是我沒有找到任何有用的東西。有什麼建議麼?開始的地方?自動摺疊vim中的#defines
4
A
回答
7
只是一個摺疊區域添加到您的語法 http://vim.wikia.com/wiki/Syntax_folding_of_Vim_scripts#Syntax_definitions
:syn region myFold start="\#IF" end="\#ENDIF" transparent fold
:syn sync fromstart
:set foldmethod=syntax
2
爲了增加@hometoasts的回答,您可以添加命令,如文件和Vim會的第一個十年,最後十行評論自動將其用於該文件。
/* vim: syn region regionName start="regex" end="regex": */
0
快速除了丹頓的另外:要使用新的語法規則與任何C或C++代碼,它在$VIMRUNTIME/syntax/c.vim
和cpp.vim
添加到文件中。 ($VIMRUNTIME
是您的本地Vim代碼所在的位置:Unix上的~/.vim
)。另外,語法定義中的start
和end
的值爲正則表達式,所以您可以使用^#if
和^#endif
確保它們僅匹配那些字符串的開頭線。
0
我一直使用forldmethod = marker,並在註釋中定義了我自己的摺疊標籤。
這是用於定義定義打開和關閉摺疊的字符。在這種情況下,打開「<(」和close is「)>」用任何你想要的替換它們。
set foldmethod=marker
set foldmarker=<(,)>
這是我的自定義功能,以決定如何顯示摺疊文本:
set foldtext=GetCustomFoldText()
function GetCustomFoldText()
let preline = substitute(getline(v:foldstart),'<(','<(+)','')
let line = substitute(preline,"\t",' ','g')
let nextLnNum = v:foldstart + 1
let nextline = getline(nextLnNum)
let foldTtl = v:foldend - v:foldstart
return line . ' | ' . nextline . ' (' . foldTtl . ' lines)>'
endfunction
希望有所幫助。
0
我有一個龐大的代碼庫,所以有大量的#defines。每個文件都有許多#ifdef的 以及它們嵌套的大部分時間。我嘗試了很多vim腳本,但他們總是用 來運行我的代碼時出現了一些錯誤。所以最後我把我所有的定義放在 的頭文件中,並將其包含在我想要的文件中,並在其上做了gcc 這樣
gcc -E -C -P source.cpp> output.cpp
-E命令獲取gcc僅運行文件上的預處理器,因此將刪除未定義的#ifdef中所有不需要的 代碼。 -C選項保留文件中的註釋。 -P選項禁止在預處理器的輸出中生成線標記。
相關問題
- 1. vim中的自動ruby摺疊
- 2. Vim Markdown摺疊?
- 3. vim中的摺疊功能
- 4. VIM中的摺疊代碼
- 5. Vim摺疊 - 標記打開摺疊
- 6. 導出Vim摺疊?
- 7. Vim爲PHP摺疊
- 8. 目錄在Vim中摺疊
- 9. Bootstrap摺疊不會自動摺疊
- 10. VIM Markdown摺疊:部分摺疊子部分摺疊子部分
- 11. ExpandabeListView自動摺疊
- 12. vim的定製摺疊
- 13. 如何在Vim中啓用自動摺疊?
- 14. 如何在Vim中自動摺疊長C代碼?
- 15. 在Vim中使用.vimrc自動摺疊Oracle內聯視圖
- 16. 如何摺疊(摺疊)Doxygen默認在vim中註釋?
- 17. Vim進口Scala摺疊
- 18. vim摺疊scss語法
- 19. Vim代碼摺疊爲Scilab
- 20. VIM摺疊ERB文件?
- 21. 複製和關閉Vim中的摺疊
- 22. 禁用vim中的摺疊評論
- 23. Vim中正則表達式的摺疊
- 24. 如何摺疊Vim中的類塊?
- 25. 在vim中摺疊重複的行
- 26. vim中的「摺疊」或「隱藏」文本
- 27. vim不會摺疊第一個摺疊的所有東西
- 28. 是摺疊的嗎? - 如何檢查在VIM摺疊
- 29. 在VIM中摺疊C預處理器
- 30. 在Vim中爲CSS定製摺疊
這就是爲什麼我愛vim,哈哈。 – 2008-09-23 14:20:56
我在vim 7.0上,將3行放在我的.vimrc文件的末尾,但是我看到我的文件的某些部分被任意摺疊。有人可以發佈確切的步驟來做以下事情: 1.根據環境變量例如如果有#ifdef並且env變量未設置,則摺疊。 2.摺疊所有ifdef(無論層次結構有多深),如果你想看到它們,你就做一個zo。 – 0fnt 2011-02-02 12:51:19