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 을 실행하면 됩니다.




Ref