1. 구조
myuser@DESKTOP-EDRVGJ4:~/local_dir$ tree
.
├── vim
│ └── syntax
│ └── proC.vim
├── vimrc_local
└── your_file.pc
2.vimrc_local
myuser@DESKTOP-EDRVGJ4:~/local_dir$ cat vimrc_local
" --- local_dir 전용 vim 설정 ---
syntax on
filetype on
" 확장자 연결
autocmd BufNewFile,BufRead *.pc,*.pcp set filetype=proC
" 로컬 syntax 경로 추가
set runtimepath+=~/local_dir/vim
" 편의 설정 (선택)
set number
set tabstop=4 shiftwidth=4 expandtab
set background=dark
3. ./vim/syntax/proC.vim
myuser@DESKTOP-EDRVGJ4:~/local_dir$ cat ./vim/syntax/proC.vim
"--------------------------------------------------------------------
" proC.vim — Enhanced Pro*C syntax highlighting (with SQL keywords)
"--------------------------------------------------------------------
if exists("b:current_syntax")
finish
endif
" 기본은 C 문법 불러오기
runtime! syntax/c.vim
" Pro*C는 대소문자 구분 안 함
syntax case ignore
"---------------------------
" 1. Pro*C 전용 키워드
"---------------------------
syntax keyword procSQLKeyword EXEC SQL BEGIN END DECLARE SECTION
syntax keyword procSQLKeyword FETCH CLOSE OPEN PREPARE EXECUTE
syntax keyword procSQLKeyword COMMIT ROLLBACK CONNECT DISCONNECT
syntax keyword procSQLKeyword INCLUDE WHENEVER INTO USING DESCRIPTOR
syntax keyword procSQLKeyword ALLOCATE DEALLOCATE FREE CURSOR
"---------------------------
" 2. SQL 키워드
"---------------------------
syntax keyword procSQLKeywordSQL SELECT INSERT UPDATE DELETE CREATE DROP ALTER
syntax keyword procSQLKeywordSQL FROM WHERE GROUP BY HAVING ORDER
syntax keyword procSQLKeywordSQL VALUES INTO SET DISTINCT
syntax keyword procSQLKeywordSQL INNER LEFT RIGHT FULL JOIN ON
syntax keyword procSQLKeywordSQL UNION INTERSECT MINUS ALL
syntax keyword procSQLKeywordSQL LIKE BETWEEN IN IS NULL NOT AND OR EXISTS
syntax keyword procSQLKeywordSQL FETCH FIRST NEXT ROWS ONLY
"---------------------------
" 3. EXEC SQL 블록 전체 강조
"---------------------------
syntax region procSQLBlock start=/EXEC\s\+SQL/ end=/END-EXEC\s*;/ contains=procSQLKeyword,procSQLKeywordSQL
"---------------------------
" 4. 색상 그룹 연결
"---------------------------
hi def link procSQLKeyword Statement
hi def link procSQLKeywordSQL Keyword
hi def link procSQLBlock PreProc
let b:current_syntax = "proC"
