Vim에서 Yaml을 편집 할 때 잘못된 들여 쓰기
Vim이 YAML 파일의 대시 기호에서 올바르게 반응하지 않아 형식이 깨집니다.
예를 들어 다음과 같은 블록이 있습니다.
handlers:
- name: restart exim4
service: name=exim4 state=restarted
I 입력을 마치면 restart exim4
및 입력 service:
빔 내 마지막 reindents service
라인 :
handlers:
- name: restart exim4
service: name=exim4 state=restarted
따라서 Vim은 문장을 열 단위 로 정렬하려고 하지만 YAML에서 필요한 것은 아닙니다. 두 개의 값으로 배열을 만들고 싶습니다.
어떻게 고칠까요?
이 플러그인을 설치하십시오.
https://github.com/chase/vim-ansible-yaml
Ansible을 염두에두고 만들어졌지만 이론적으로는 모든 종류의 YAML 파일에서 작동합니다. 안타깝게도 ansible 관련 파일로 작업하지 않는 경우 : set filetype = ansible을 수행해야합니다.
콜론 뒤에 캐리지 리턴을 눌렀을 때 멋진 2 공백 YAML을 기본값으로 사용하기 위해 다음을 추가했습니다 .vimrc
.
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
이것은 OP의 예상 결과에 대한 대시와도 잘 어울립니다.
:
키 를 입력 할 때 다시 들여 쓰기를 비활성화 할 수 있습니다 .
:set indentkeys-=<:>
~/.vimrc
파일을 편집 하고 다음 줄을 추가하십시오.
filetype plugin indent on
autocmd FileType yaml setl indentkeys-=<:>
주 : autocmd
이후에 온다 filetype
.
당신은 입력하여 reindent을 트리거 할 수 있습니다 CTRL-F에 삽입 예를 들어, 모드 :
hello: world
foo: bar<C-F>
이 자동 명령을 사용하여 Vim이 YAML 파일을 올바르게 들여 쓰도록 할 수 있습니다 ( .vimrc
) :
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab indentkeys-=0# indentkeys-=<:>
기본적으로 YAML 파일의 경우 Vim에 다음을 지시합니다.
- 들여 쓰기를 위해 2 개의 공백을 사용하십시오.
- 탭 대신 공백을 사용하십시오.
- 줄
#
의 시작 부분에 주석 문자 ( ) 또는 콜론 을 삽입 한 후 줄 다시 들여 쓰기를 건너 뜁니다 .
YAML에 주석을 추가하여이 파일에 대한 Vim 특수 구성을 알릴 수 있습니다. 예를 들면 :
# vim: set shiftwidth=2 tabstop=2 softtabstop=-1 expandtab:
foo:
bar:
- a
- b
그러면 기본 vim과 함께이 파일을 사용하는 모든 사람이 파일 작성자의 구성을 공유 할 수 있습니다. 특히 협력 할 때 잘 작동합니다.
https://github.com/stephpy/vim-yaml 이 훌륭하게 작동하는 것을 발견했습니다 . yaml 파일의 들여 쓰기 (및 구문 강조 표시)를 수행하는 vim 플러그인입니다. 설치하면 질문 한 특정 문제도 해결됩니다.
플러그인을 설치해야하며 (GitHub 리포지토리의 doco 참조) filetype=yaml
들여 쓰기를 수정할 수만 있으면됩니다. 둘 다 도움이 될 것입니다
- 제공 한 스 니펫을 입력 할 때 또는
- yaml이 이미 작성되어있는 경우이를 선택 (
V
라인 단위 선택의 경우j
또는k
더 많은 행 선택) 한 다음 다음을 사용 하여 vim 형식을 트리거 할 수 있습니다.=
다음 augroup
은 yaml에 대한 것입니다.
augroup filetype_yaml
autocmd!
autocmd BufNewFile,BufReadPost *.{yaml,yml} set filetype=yaml foldmethod=indent
autocmd FileType yaml |
setlocal shiftwidth=2 |
setlocal softtabstop=2 |
setlocal tabstop=2
augroup END
참고 URL : https://stackoverflow.com/questions/26962999/wrong-indentation-when-editing-yaml-in-vim
'programing' 카테고리의 다른 글
각 줄 끝에 텍스트 추가 (0) | 2020.10.21 |
---|---|
saveAsTextFile 출력을 여러 파일로 분할하지 않는 방법은 무엇입니까? (0) | 2020.10.21 |
제곱 자릿수를 합산 할 때 음수 또는 0을 명시 적으로 처리해야합니까? (0) | 2020.10.21 |
php.ini 파일 (xampp)을 찾는 방법 (0) | 2020.10.21 |
FileNameExtensionFilter와 함께 File.listFiles 사용 (0) | 2020.10.20 |