yaml 편집시 줄자가 없어도 괜찮아 - vim 의 cursor column mode
ansible 을 포함해서 github action 등 여러 제품에서 설정 파일 형식으로 사용하는 야믈(yaml, yml) 은 심각한 설계상의 결함이 있습니다.
가독성을 위해서라며 괄호( { } ) 를 없애고 들여쓰기로 구분하게 했지만 이 때문에 더 혼란스럽고 헷갈리며 오류가 날 경우 찾기가 어렵습니다.
특히 요소간에 줄을 맞춰야 하므로 아래와 같은 yaml 파일의 경우 tasks: 아래에 있는 두 번째 name 필드(install mariadb 가 있는 8번째 줄)는 윗 줄과 안 맞아서 오류가 발생합니다.
--- - name: test tasks: - name: install httpd yum: name: httpd state: present - name: install mariadb yum: name: mariadb-server state: present
특히 큰 yaml 파일을 편집할 경우 눈 빠지게 신경써서 줄을 맞추는 심하게 번거로운 작업을 해야 합니다.
개인적으로 yaml 은 아주 끔찍하게 잘못 만든 파일 포맷이라고 생각합니다.
그래서 농반진반으로 아래와 같이 줄자를 대고 yaml 파일을 코딩하는 사진도 있습니다.
출처: https://twitter.com/abock/status/1117056887072145409
하지만 저는 줄자가 없는 관계로 vim 에 yaml 편집용 유용한 기능이 있지 않을까 찾아 보았는데 cursorcolumn 모드를 설정하면 세로 막대가 생겨서 줄자대신 사용할 수 있다는 것을 알게 되었습니다.
사용하려면 다음과 command mode 에서 다음 명령을 치면 세로 막대가 생겨서 편하게 yaml 줄을 맞출 수 있습니다.
set cursorcolumn
가로줄은 set cursorline 을 실행하면 됩니다.