문제

VIM이 접기 헤더로 사용되는 라인에 서식을 계속 적용 할 수있는 방법이 있습니까?

예를 들어, 다음 코드가 있습니다.

int foo(int a, int b) {
    int c;
....
}

접 히면 다음을 본다 :

+-- 4 lines: int foo(int a, int b) {----------------------------

그러나 전체 라인은 "접힌"클래스에 따라 강조됩니다. 이것을 비활성화하는 방법이 있으므로 구문 강조 표시가 계속 표시됩니까?

간단한 예제의 경우 이것은 중요하지 않지만 큰 데이터 파일을 보는 데 광범위하게 접는 것을 사용하며, 형식이 훨씬 더 중요합니다.


도움이 되었습니까?

해결책

그러나 전체 라인은 "접힌"클래스에 따라 강조됩니다. 이것을 비활성화 할 수있는 방법이 있으므로 구문 강조 표시가 계속 표시됩니까? "

아니요, 접힌 헤드 라인 텍스트는 파일의 일부인 텍스트가 아니며 직접 편집 할 수 없으며 화면에서 계산 및 오버레이드됩니다. '접힌'하이라이트는 전체 라인에 적용되며 모든 주름은 동일한 강조 표시가 적용됩니다.

vim과 함께 vim the afrimour (vimoutliner 프로젝트에서)로 사용하기 위해 Vim 소스를 해킹하여 접힘 레벨에 따라 다른 접힘 하이라이트를 허용하므로 적용되는 여러 개의 폴드 제목 하이라이트가 있습니다 (예 : Foldlevel1, Foldlevel2 등). . 접이식 헤드 라인에서 텍스트를 이미 존재하는 강조 표시를 사용하는 것이 더 해킹 될 수 있다고 생각하지만, 접이식이 작동하는 방식으로 인해 소리보다 더 어려울 수 있다고 생각합니다.

죄송합니다. 폴드 메토드에 대한 제안은 어쨌든 찾고있는 것일 수 있다는 점을 강타했습니다. 이는 접은 섹션의 일종의 제목으로 기능하게하는 동시에 색소되지 않은 선에서 구문을 보존합니다.

다른 팁

나는 당신이 찾고있는 것이 폴드 메드를 수동 대신에 들여 쓰기로 바꾸는 것입니다. 이것을 명령 모드로 입력하십시오.

:set foldmethod=indent

이제 foo 함수 안으로 들어가서 ZM을 입력하면 (주름 레벨을 하나씩 증가 시키면) 다음과 같습니다.

int foo(int a, int b) {
+--  2 lines: int c;------------------------------------------------------------
}

Foo 라인에는 여전히 구문 강조 표시가 있습니다. 물론 전개하려면 Zr을 입력하십시오. 편의를 위해 다음 몇 줄을 .VIMRC에 넣어 모든 것을 신속하게 접거나 펼치겠습니다.

" Folding and unfolding
map ,f :set foldmethod=indent<cr>zM<cr>
map ,F :set foldmethod=manual<cr>zR<cr>

좋은 튜토리얼도 있습니다 여기, 물론 FoldMethod에 대한 VIM 도움을 읽으면 책장보다 더 좋아하는 다른 방법으로 이어질 수 있지만 예제 코드가 보이는 방식은 아마도 들여 쓰기를 원할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top