2008-09-12 9 views
44

그 밖의 다른 사람이 VIM의 JavaScript의 구문 강조 표시를 차선 이하로 찾았습니까? 때로는 신비하게 모든 강조 표시를 삭제하기 때문에 구문 강조 표시를 조정하려면 스크롤해야 할 때가 있습니다.vim에서 자바 스크립트 구문 강조 표시

이 문제를 해결할 수있는 방법이나 방법이 있습니까? 나는 vim 7.1을 사용하고있다.

답변

29

VIMRUNTIME과 함께 제공되는 improved Javascript syntax highlighter 대신 사용해보십시오.

+0

니스. 심지어 jsdoc에 대한 강조 표시도 지원합니다. 감사! – asksol

+0

주의 : 개선 된 형광펜의 작성자가 최신 버전의 구문 동기화와 다른 것으로 바뀌 었음을 알았습니다 ... 그래서 당신이 본 문제는이 형광펜에서 시작될 수 있습니다. 과거와 마찬가지로, 항상 시작에서 시작되었습니다. –

+0

나는 9/12/08 릴리스와 05/17/07 릴리스를 모두 시도했으며 어느 상황에서도 상황을 개선하지 못했습니다. 중간에 복잡한 자바 스크립트 파일을 열면 강조 표시가 나타나지 않고 여러 페이지를 스크롤해야 Vim이 올바르게 강조 표시됩니다. –

12

구문 색칠 동기화는 아마도 조정이 필요합니다. 특정 상황에서 내가 그것을 바꿀 필요가 있음을 발견했습니다.

구문 동기화 (": help syn-sync")는 vim이 파일의 모든 부분을 그리기 시작할 수 있도록 채색을위한 코드 구문을 추적하고 새로 고치는 방법을 제어합니다.

기본값은 항상 때때로 나 자신이 바로

:help syntax 
을 확인 내가

:help syn-sync 

또는 아래 문서를 읽어 보시기 바랍니다

:syn sync fromstart 

을 발행 찾아, 나를 위해 작동하지 않습니다

및 동기화 섹션을 찾으십시오.

4 가지 기본 옵션 중에서 적절한 결정을 내릴 수 있습니다. "fromstart"와 "ccomment"모드 사이를 전환하고 동기화 설정을 지우는 기능 키에 대한 매핑을 유지합니다.

3

빠르고 더러운 수정을 위해 때로는 위아래로 스크롤하여 강조 표시를 재조정합니다. Ctrl + 화면 다시 그리기 용 L도 수정할 수 있습니다.

15

글쎄, 나는 Yi Zhao's Javascript Syntax을 수정했고, Ajax 키워드 지원을 추가했으며, DOM 메소드 등을 강조했다.

나는 지금까지 Vim을 처음 접했을 때와는 거리가 멀다. 그러나 지금까지는 나를 위해 일하고있다. My Javascript Syntax. 수정이 가능하면 기능을 추가하십시오.

업데이트 : 내 문맥 하이라이트는 자신의 colorscheme에 포함시킨 경우에만 표시됩니다. 내 Nazca colorscheme에서 그랬습니다. 이 라인을 수정 된 구문 파일에 추가 할 수 있는지 테스트 할 것입니다.

github의 javascript 구문 파일의 새 버전을 따르십시오. 더 이상 현재 colorscheme을 수정하지 않아도됩니다.

+0

스크린 샷의 모양이 마음에 들지만 구문 파일은 보이지 않습니다. 그것을로드 할 때 표준 vim js 구문과 다른 것을하지 마십시오. 나는 다른 사용자 정의 구문 파일을 가지고 있는데, 왜 당신이 왜 작동하지 않는지 궁금합니다. – djeikyb

+0

광산은 Yi Zhao 's를 기반으로 표준 vim js 구문보다 우수한 것으로 나타났습니다. 또한, vim을 위해 내 Nazca 색션에 여분의 선을 추가했습니다. 수정 된 구문 파일에이 줄을 직접 추가하지 않았습니다. 사실,이 선을 자신의 색조에 쉽게 추가 할 수 있습니다. –

+0

아, 아무런 색 구성표에 추가 선을 추가해야한다는 것을 알지 못했기 때문에 아무 것도하지 않았습니다. 알았어. 감사! – djeikyb

3

이것은 정말로 오래된 게시물이지만 동일한 문구가 있습니다. .html 파일의 자바 스크립트 섹션을 볼 때 구문 강조가 작동하지 않는 경우가 있습니다. OP에서 언급했듯이 빠른 해결 방법은 위로 스크롤 한 다음 마술처럼 물건을 다시 강조하는 것입니다.

오늘 근본적인 문제와 좋은 해결책을 발견했습니다. Vim에서 구문 강조 표시는 컨텍스트를 사용하여 정확한 강조를 가져 오며 여기서 컨텍스트는 이전 행에 의해 정의됩니다.:syntax sync minlines=200을 발행하면 현재 행 이전의 행 수를 지정할 수 있습니다. 이 경우 컨텍스트로 200 개의 이전 행을 사용합니다. :syntax sync fromstart을 실행하여 전체 파일 (긴 파일의 경우 느려질 수 있음)을 사용할 수 있습니다. 내가 그 발견되면

, 내 .vimrc에이 줄을 추가 :

autocmd BufEnter *.html :syntax sync fromstart 

그렇게함으로써, .html 파일 컨텍스트로 전체 파일을 사용합니다. 따라서 자바 스크립트 섹션은 JS 섹션의 길이에 관계없이 항상 올바르게 강조 표시됩니다. 희망이 밖으로 다른 사람을 도와주세요!

+0

This HTML/JS 구문 하이라이트 문제를 해결할 수있는 최상의 솔루션입니다. VIM에 아직 해결할 수없는 버그가있는 이유를 모르겠습니다. https://github.com/vim/vim/issues/1775 – northtree