vim으로 구문 하이라이트를 직접 제작

2539 단어 vimrcVim

1. 구문 정의 파일



vim은 "확장자 이름 .vim"이라는 파일에 각 확장자에 대한 구문을 정의합니다.
예를 들어, C 언어(example.c)의 구문 정의는 c.vim,
HTML(example.html)이면 html.vim이라는 파일에 작성됩니다.

이러한 구문에 대한 정의 파일은 ~/vim74/syntax 폴더에 있습니다.
정의되지 않은 확장자에 대한 구문 정의를 추가할 수도 있습니다.

이번에는 예제로 .txt 구문 정의를 만듭니다.

txt.vim은 기본적으로 존재하지 않으므로,
txt.vim을 새로 만들고 ~/vim74/syntax 폴더에 저장합니다.
하이라이트하고 싶은 구문을 써 넣자.

~/vim74/syntax/txt.vim
syntax keyword txtComment コメント
syntax keyword txtConstant 定数
syntax match txtString /文字列/
syntax match txtIdentifier /何これ/
syntax match txtError /エラー/

highlight link txtComment Comment
highlight link txtConstant Constant
highlight link txtString String
highlight link txtIdentifier Identifier
highlight link txtError Error

let b:current_syntax = "txt"

쓰는 방법은 구문을 지정할 때syntax keyword [グループ名] [構文]syntax match [グループ名] [構文]같은 상태로 기술합니다.
이 때 그룹 이름과 구문은 자유롭게 결정됩니다.
keyword와 match의 차이는 정확한 곳은 모르지만 결과를 나중에 나타냅니다.
keyword나 match 외에도 하이라이트 개소를 범위로 지정하는 region이 있는 것 같습니다.

강조할 색상을 선택할 때는highlight link [グループ名] [ハイライトカラー]합니다.

여기서 그룹명은 스스로 결정한 것으로부터 선택합니다.
하이라이트 컬러는 다수 준비되어 있는 중에서 선택합니다.:h syntax라는 명령으로 목록을 볼 수 있습니다.

2. vimrc에 추가할 내용



vimrc에는 다음 문장을 추가하면 괜찮습니다.

vimrc
au BufRead,BufNewFile *.txt set filetype=txt

다른 확장자의 경우 "txt"부분을 변경하십시오.

3. test.txt로 시도



test.txt의 편집 화면은 다음과 같이 표시됩니다.


keyword로 정의한 「코멘트」와 「정수」는 1행째에서는 하이라이트되지 않네요.
분명히 keyword로 정의하면 다른 문자열과 연속적인 형태로 구문이 포함되는 경우에는 강조 표시되지 않는 것 같습니다.
공백이나 기호와 연속하는 경우에는 강조 표시됩니다.

좋은 웹페이지 즐겨찾기