2014-12-12 2 views
2

.vimrc에서 구문 강조를 사용하도록 설정했지만 특정 파일로드가 너무 길어집니다. 따라서이 파일에 대한 구문 강조 표시를 사용하지 않도록 설정해야합니다 (또는 정확하게 설정하려면 사용하지 않도록 설정 한 다음 사용하지 않도록 설정하는 것이 해결책이 아닙니다). 시도해 보았습니다.특정 파일 이름에 대한 구문 강조 표시 사용 안 함

au BufNewFile,BufRead !*.inc syntax enable 

하지만 구문 강조 기능이 적용되지 않았습니다. 해결책은 here입니다. 왜냐하면 필자가 파일 형식으로 구별 할 수 없기 때문에 저에게는 효과적이지 않습니다. 필자는 "syntax enable"에 필요한 이벤트에 연결될 수도 있고 연결되지 않을 수도있는 무용지물에 적응하려고했습니다.

모든 포인터 주셔서 감사합니다!

답변

2

올바른 방향에 대한 언급 솔루션 포인트 :

au BufNewFile,BufRead * if expand('<afile>:e') !=? 'inc' | syntax enable | endif 
: 다음 (대신 'filetype'의) expand('<afile>')를 통해 파일 이름, 일치 모든 버퍼에 대한 autocmd를 정의하고이처럼 마십시오

여기에 예제의 조건에 *.inc 개의 확장자를 사용했습니다. 당신은 성가신 일치를 찾아 오히려 autocmd 구문을 사용하는 경우, 당신이 할 수있는 중간 버퍼 플래그도 autocmds는 정의의 순서로 실행된다는 사실 사용 :

au BufNewFile,BufRead *.inc let b:isOmitSyntax = 1 
au BufNewFile,BufRead *  if ! exists('b:isOmitSyntax') | syntax enable | endif 
+0

두 솔루션 모두 고마워요. 일치하는 항목을 자세히 설명해 주시겠습니까? =?'do? – PhilippFrank

+0

'! =?'은 (와) 같지 않습니다. 대소 문자를 구별하지 않습니다. 파일 확장자의 대소 문자는 신경 쓰지 않기 때문에 사용했습니다.필자가 말했듯이, Vimscript 매칭은 autocmds에서 매칭되는 패턴과 다르다. 그것은 두 번째로 해결 된 원형 솔루션의 이점이다. –

+0

이제는 언급 했으니 까, 나는 첫 번째 해법의 무감각을 좋아한다. 다시 한 번 감사드립니다! – PhilippFrank

3

.c 파일에 대해서만 구문을 표시하려는 경우. 넣으십시오 vimrc

syntax off 
autocmd! bufreadpost *.c syntax on 

을 입력하십시오. 당신은 .inc 파일을 구문을 사용하지 않으려는 질문에

은 또한 당신은 (이 경우 Ctrl+s) 구문을 가능하게하는 핵심

nnoremap <C-S> :syntax on<CR> 

을 매핑 할 수 있습니다.

syntax on 
autocmd! bufreadpost *.inc set syntax=off 
+0

감사합니다,하지만 그 의미를 가능한 모든 파일 이름에 대해 readd 구문을 사용해야하지만 * .inc. 그게 제가 피하고 싶은 바로 그 것입니다. – PhilippFrank

+0

@PhilippFrank 답변을 편집했습니다 –

+0

다시 한 번 감사드립니다. 그러나 장시간 로딩 시간 문제를 해결하지 못하는 "활성화 및 비활성화"에 해당합니다. – PhilippFrank

관련 문제