나는 #define (#if WIN, #if UNIX 등)으로 구분 된 많은 플랫폼의 C/C++ 코드로 작업합니다. vim이 파일을 열 때 현재 관심이없는 부분을 자동으로 접을 수 있다면 좋을 것입니다. vim 스크립트 아카이브를 검색했지만 유용한 것은 없습니다. 어떤 제안? 시작할 장소?vim에서 #defines를 자동으로 접을
답변
은 그냥 파일과 정력 의지의 처음 10 또는 마지막 10 줄에 주석으로 해당 명령을 추가 할 수 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
이 대답을 @hometoasts에 추가하여 구문 접이식 지역을 추가 해당 파일에 대해 자동으로 사용합니다.
/* vim: syn region regionName start="regex" end="regex": */
"modelines"을 잊어 버렸습니다. 일회용으로 딱 맞습니다. – hometoast
덴튼의 첨가 빠른 추가 : 어떤 C 또는 C++ 코드로 새로운 구문 규칙을 사용 $VIMRUNTIME/syntax/c.vim
및 cpp.vim
에 파일을 추가합니다. ($VIMRUNTIME
은 로컬 Vim 코드가있는 위치입니다. Unix에서는 및 end
의 값은 정규 표현식이므로 및 ^#endif
을 사용하여 a의 시작 부분에서 해당 문자열과 일치하는지 확인하십시오. 선.
나는 항상 forldmethod = marker를 사용하고 댓글 내에 배치 된 내 자신의 fold 태그를 정의했습니다.
이것은 열기 및 닫기 접기를 정의하는 문자를 정의하기위한 것입니다. 이 경우 open은 "< ("및 닫기는 ")>"원하는대로 바꾸십시오.
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
희망.
나는 거대한 코드베이스를 가지고 있으므로 수많은 #define이있다. 각 파일에는 수많은 # ifdef의 이 있고 대부분 중첩되어 있습니다. vim 스크립트를 많이 사용했지만 항상 그들은코드를 가지고 오류가 발생했습니다. 그래서이
GCC처럼 을 결국 내가 헤더 파일에 내 모든 정의를 넣어 내가 작업하고 싶은 파일에 포함하고 그 위에 GCC했다 -E -C -P source.cpp> output.cpp
-E 명령은 파일의 전 처리기 만 실행하도록 gcc를 가져 오므로 정의되지 않은 # ifdef 내에있는 원치 않는 모든 코드가 제거됩니다. -C 옵션은 파일에 주석을 유지합니다. -P 옵션은 선행 처리기의 출력에서 선 표시 (linemarker) 생성을 금지합니다.
- 1. Vim에서 긴 C 코드를 자동으로 어떻게 접을 수 있습니까?
- 2. YAML 항목을 VIM에서 어떻게 접을 수 있습니까?
- 3. Vim에서 파일을 복사 할 때 주름을 감거나 접을 방법
- 4. Vim에서 인쇄 할 파일을 자동으로 포맷하십시오.
- 5. 문서를 닫을 때마다 정의에 자동으로 접을 수있는 방법은 없습니까?
- 6. vim에서 자동 루비 폴딩
- 7. 접을 수있는 목록보기
- 8. 접을 수있는 gridview 열
- 9. 접을 수있는 항목이있는 ListView?
- 10. Jquery 접을 수있는 영역
- 11. ASP.net에서 접을 수있는 패널
- 12. 접을 수있는 레이아웃의 플렉스
- 13. 플렉스 접을 수있는 패널?
- 14. VIM에서 로그 파일에서 변경된 파일을 자동으로 로그하는 방법은 무엇입니까?
- 15. vim에서 파이썬 변수 할당 라인을 자동으로 정렬하는 방법
- 16. vim에서 들여 쓰기가 자동으로 들여 쓰기 된 코드
- 17. vim에서 NERDTree 자동 열기
- 18. 접이식을 열고 vim에서 그 끝으로 점프
- 19. Vim에서 외부 파일로 폴드를 제어하는 방법은 무엇입니까?
- 20. Vim에서 성냥을 주석으로 처리하려면?
- 21. vim에서 buf를 종료하는 방법
- 22. 접을 수있는 UIView를 만드는 방법
- 23. 동적으로 추가 접을 수있는 요소
- 24. 당신은 수평으로되어 접을 수있는 창이나
- 25. 접을 수있는 영역이있는 CSS 편집기
- 26. 접을 수있는 행이있는 GWT 테이블
- 27. JQuery와 모바일 접을 수있는 내용
- 28. 접을 수있는 사이드 패널 컨트롤
- 29. 자바 접을 수있는 if 문
- 30. Vim에서 'gf'를 어떻게 되 돌리는가?
이것이 내가 vim을 좋아하는 이유입니다. 하하. –
나는 vim 7.0을 사용하고, .vimrc의 끝에 3 줄을 넣었지만, 내 파일의 일부 섹션이 임의로 접히는 것을 볼 수있다. 누군가 다음 단계를 수행하기위한 정확한 단계를 게시 할 수 있습니까? 1. 환경 변수 (예 : #ifdef가 있고 env 변수가 설정되어 있지 않으면 폴드합니다. 2. ifdefs를 모두 접으십시오 (계층 관계가 깊다하더라도).보고 싶다면 zo를하십시오. – 0fnt
구체적으로, 새로운 질문을하거나, vim 메일 링리스트 (http://www.vim.org/community)에 게시하는 것이 좋습니다.PHP) – hometoast