IT박스

Vim의 여러 자동 명령

itboxs 2021. 1. 10. 16:59
반응형

Vim의 여러 자동 명령


.vimrc다음과 같은 섹션 이 있습니다.

autocmd Filetype ruby setlocal ts=2
autocmd Filetype ruby setlocal sts=2
autocmd Filetype ruby setlocal sw=2

이제 다음과 같이 변환 할 수있는 것 같습니다.

autocmd Filetype ruby setlocal ts=2 sts=2 sw=2

하지만 여기 내 질문이 있습니다. 이와 같은 구조를 갖는 vim 방법이 있습니까?

<something mentioning Filetype ruby>
  setlocal ts=2
  setlocal sts=2
  ...
<end>

즉, autocmd Filetype일련의 작업을 처리하기 위해 비트를 만들 수 있습니까? (이것은 간단한 예입니다. 저는 정말로 더 복잡한 상황을 요구하고 있습니다.)


원하는 경우 함수를 호출 할 수 있습니다.

autocmd Filetype ruby call SetRubyOptions()
function SetRubyOptions()
    setlocal ts=2
    ...
endfunction

다음을 사용하여 대부분의 명령을 연결할 수 있습니다 |.

au Filetype ruby
            \ setlocal ts=2  |
            \ setlocal sts=2 |
            \ ...

이 구문이 함수를 작성하는 것보다 나은지 나쁜지 확실하지 않습니다. 일부 명령은 이와 같이 연결할 수 없지만이 execute를 우회하는 데 사용할 수 있습니다 . 참조하십시오 :h :bar.

또한 행 시작 부분에있는 :h line-continuation이상한 구문에 대한 설명을 참조하십시오 \.


ftplugins는 귀하의 질문에 대한 깔끔한 답변입니다.

  1. 다음 .vimrc과 같은 라인이 있는지 확인하십시오.:filetype plugin on
  2. {rtp}/ftplugin/{thefiletype}.vim또는 이름의 파일을 정의합니다 {rtp}/ftplugin/{thefiletype}/whatever.vim( :h rtp자세한 내용은 참조).
  3. 이 새 파일을 편집하고 거기에 VIM 명령을 넣으십시오. :setlocal명령 을 사용하여 파일 유형별 설정이 해당 파일에만 적용되는지 확인 하는 것이 좋습니다 (예 : 모든 파일 유형에서 모든 주석을 보라색으로 바꾸지 않음).

기본 설정을 재정의하려는 경우 vim 배포의 예제를 참조하십시오. 또는 중 내가 쓴 많은 ftplugins 기타), 그냥 적어 :setlocal, :*map <buffer>등 정의.

입력 할 줄이 더 많지만 적어도 크기가 조정됩니다.

참조 URL : https://stackoverflow.com/questions/1413285/multiple-autocommands-in-vim

반응형