물론입니다. 아래는 Vim을 이용해 Python 파일 내의 탭(tab) 공백을 스페이스(space)로 바꾸는 방법을 주제로 한 블로그 글 형태입니다.
Python 코드의 들여쓰기를 Vim에서 Tab → Space로 바꾸는 방법
Python에서는 **들여쓰기(indentation)**가 문법의 일부입니다. 그래서 코딩 스타일을 일관되게 유지하는 것이 중요하죠. 특히 Tab과 Space가 섞이면 디버깅하기도 어렵고, 협업 시 코드 충돌의 원인이 되기도 합니다.
이번 글에서는 Vim 에디터를 사용해 Python 파일에서 들여쓰기용 **탭(tab)**을 **스페이스(space)**로 바꾸는 방법을 소개합니다.
필요한 경우 일부분만 바꾸는 방법과 전체 파일을 한 번에 바꾸는 방법 두 가지 모두 다룹니다.
1. 현재 파일에서 Tab이 사용되고 있는지 확인하는 방법
Vim에서 파일을 열고 다음 명령어를 입력합니다:
:set list
이 명령은 공백 문자와 특수문자를 시각적으로 보여줍니다.
- ^I : Tab 문자를 의미합니다.
- · : Space (스페이스)를 의미합니다.
탭이 쓰인 부분이 ^I로 보이면, 해당 파일은 스페이스가 아니라 탭으로 들여쓰기 되어 있다는 뜻입니다.
2. 파일의 일부분만 Tab → Space로 바꾸는 방법
탭을 스페이스로 바꾸고 싶은 라인 범위를 지정한 뒤 아래 명령어를 입력합니다:
:'<,'>retab
또는 범위를 명시해서 직접 입력해도 됩니다:
:10,30retab
이 명령은 지정한 줄(10~30번 줄)의 탭을 설정된 shiftwidth만큼의 스페이스로 바꿔줍니다.
📌 참고: shiftwidth는 한 단계 들여쓰기를 몇 개의 스페이스로 바꿀지 정하는 옵션입니다. 일반적으로 Python에서는 4를 사용합니다.
:set shiftwidth=4
3. 전체 파일에서 Tab → Space로 일괄 변환하는 방법
파일 전체를 한 번에 정리하고 싶다면 다음 단계를 따르면 됩니다.
- 탭을 스페이스로 변환하도록 Vim 설정하기
:set expandtab
:set tabstop=4
:set shiftwidth=4
- expandtab: Tab 키를 누르면 스페이스로 입력되게 설정
- tabstop: 탭 문자를 몇 개의 스페이스로 간주할지
- shiftwidth: 들여쓰기에 사용할 스페이스 수
- 전체 파일을 재정렬(retab)
:retab
retab 명령은 현재 tabstop과 shiftwidth 설정을 기준으로 기존의 탭 문자를 스페이스로 변환합니다.
4. 추가 팁: 저장 시 자동으로 Tab을 Space로 바꾸고 싶다면?
.vimrc에 다음 설정을 추가해두면 Python 파일을 열었을 때 자동으로 스페이스 기반으로 편집됩니다:
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=4
5. 마무리
Python에서는 들여쓰기의 일관성이 필수입니다. Vim을 쓴다면 retab, expandtab, shiftwidth, tabstop 등의 명령어를 잘 활용해서 코드를 깔끔하게 관리하세요.
'개발 도구 > Vim' 카테고리의 다른 글
[ Vim ] 특정 단어를 하이라이트 시키기 (0) | 2025.06.27 |
---|---|
[ Vim ] comment - 여러 줄에 주석 달기 (0) | 2024.12.10 |
[ Vim ] tab을 space로 변경하기 (expandtab, shiftwidth, tabstop) (0) | 2024.09.05 |
[ Vim ] 편집기 옵션 설정하기 (0) | 2020.10.25 |