에 vim,어떻게 적용 autocommands 대하여 설명하는 파일의 영역?
-
02-01-2020 - |
문제
나는 종류의 무 파일 형식을 가질 수 있는 임베디드 C,python,ruby,등등에서 그것은(생각하는'위키 페이지는'도움이 된다면).는 방법이 있을 실행하 autocommands 알려진 파일 형식의 영역으로 파일은?
예를 들어,내가:
#!bash
if [ a = b ]; then
echo 'equal'
fi
#!python
if a = b:
print('equal')
고 적용하고 싶 bash filetype autocommands 첫 번째 부분이고 python filetype autocommands 후기 부분입니다.
나는 그냥 얻을 수 있는 구문 hilighting 를 정의하여 사용하여 지역 이 방법,그러나 내가 이해하지 못하 autocommands 충분히 적용할 수 있는 그들도 비슷한 방식으로 이루어집니다.
해결책
하이 자동으로 도전적 파일 형식 설정은 버퍼로컬;Vim 은 개념의 지역 :autocmds
야 하므로 사용을 올바르게 명시합니다.
빠르고 쉽
와 같은 플러그인 NrrwRgn-좁은 지역의 플러그와 비슷하 Emacs, 를 복제할 수 있는 지역을 분리 스크래치 버퍼플러그인이 자동으로 동기화를 다시 쓰기.각 버퍼 주어질 수 있는 별도의 파일 형식을 통해 :setf
.
심지어 간단한 방법을 정의하는 일부를 매핑을 빠르게 전환 filetypes:
:nnoremap <Leader>fp :setf python<CR>
:nnoremap <Leader>fs :setf sh<CR>
정말로 별도의 지역에 단일 버퍼
의 스케치 이것은 간단합니다:
:autocmd CursorMoved,CursorMovedI <buffer> if line('.') >= 6 | setf python | else | setf sh | endif
이에 의존하고 각각의 파일 형식 플러그인 하이 적절한 정리(또는 재정의 모든 관련 옵션).
을 결정하는 방법을 지역
당신은 확실히 지정하고 싶지 않은 라인을 숫자로 명시적으로 스케치에서이다.나 OnSyntaxChange 플러그인 도움이 될 수 있는 경우에,당신이/을 정의할 수 있는 적절한 구문은 지역에 대한 각 블록입니다.