갤 살리기 운동 일환으로 뭐라도 연재 시작해봄
순정 vim부터 (9.0 기준) neovim까지 (nightly 기준) 자잘한 팁같은거 조금씩 뿌릴 생각임
h,j,k,l 같은 vim motion이나 기본적인 config 작성법은 안다는 전제 하에 적을거임
강좌가 아니라 어디까지나 팁. 검색하면 수두룩하게 나오는 누구나 다 아는 정보는 피해서,
최대한 듣보잡 정보인데 알아두면 쓸만한것들만 모아보려 하고 있음
내장 help 문서가 이미 잘 작성되어 있는 vim 특성상 글이 좀 짧은건 양해바람
잘못된 정보에 대한 피드백은 언제나 환영
———
:h ‘tabstop’
:h ‘softtabstop’
:h ‘expandtab’
:h ‘shiftwidth’
:h ‘smarttab’
오늘은 탭 관련한 설정들에 대해서 알아보자
위에서부터 순서대로 설명하면
tabstop
: tab 문자가 몇칸씩 문자열이 몇칸씩 정렬되는지를 지정하는 설정
(기본값 0)
softtabstop
: tab 키 입력시, 문자열이 몇칸씩 정렬되는지를 지정하는 설정, tabstop과 맞지 않을 경우, space를 사용함
0이면 적용되지 않고, 음수면 shiftwidth 만큼 적용
(기본값 0)
expandtab
: tab 키 입력시, space로 대체할지 결정하는 설정
(기본값 false)
shiftwidth
: >, <에 의한 indent/dedent 시, 얼만큼씩 이동할건지 결정하는 설정
(기본값 8)
smarttab
: 줄의 맨 처음에서 tab키 입력시, tabstop을 무시하고 shiftwidth만큼 입력할지 결정하는 설정
(기본값 vim: false, neovim: true)
이중에서 개인적으로 가장 헷갈리는 개념이 softtabstop이라 예시로 설명함:
예를 들어 위와 같은 설정이라 치면, (smarttab는 설명하는데 거슬려서 끔)
tab 키 입력시, tabstop을 무시하고 tab 문자가 아니라 공백 3칸이 입력됨
한번 더 입력하면 6칸
거기서 또 입력하면 9칸…이 아니라
expandtab이 꺼져있고, tabstop은 8칸이니까 공백 8개가 tab으로 교체되고, 공백 하나가 추가돼서 총 9칸이 됨
여기서 Backspace를 누르면 “3칸”만 삭제되므로 총 6칸을 공백문자만으로 다시 채움
‘tabstop’ help 페이지에 tabstop, softtabstop, expandtab에 대한 5가지 종류의 추천 셋업이 설명되어 있으니까 한번씩 직접 써보고 자신에게 맞는걸로 설정해두자
- dc official App
진짜 좆도 아닌걸로 신나서 뇌절하는게 보기 안쓰러움
vim추