Git Bash 환경에서 Vim 비주얼 블록 모드로 여러 줄 일괄 수정하기

1 분 소요

git rebase -i 작업을 하다 보면 첫 번째 줄을 제외한 나머지 pick 키워드를 모두 s(squash)나 f(fixup)로 변경해야 할 때가 많습니다. 한 줄씩 수정하는 대신, Vim의 비주얼 블록 모드를 사용하면 단 몇 초 만에 수십 줄을 일괄 수정할 수 있습니다.

1. 비주얼 블록 모드 진입 및 편집 순서

가장 추천하는 방식은 커서를 세로로 늘려 한꺼번에 글자를 바꾸는 방법입니다.

  1. 커서 이동: 수정하려는 두 번째 줄의 p(pick의 첫 글자) 위치로 이동합니다.
  2. 블록 모드 진입:
    • 일반적인 환경: Ctrl + v
    • Git Bash(Windows) 환경: Ctrl + q (윈도우 단축키 충돌 방지)
  3. 영역 선택: j 키를 눌러 마지막 줄까지 아래로 쭉 내려서 수정할 영역을 세로로 선택합니다.
  4. 수정 모드: c (change) 키를 누릅니다. 선택된 글자들이 사라지며 입력 모드로 전환됩니다.
  5. 내용 입력: 바꾸고 싶은 글자(예: s)를 입력합니다.
  6. 적용: Esc 키를 누릅니다. 잠시 기다리면 선택했던 모든 줄의 앞글자가 순식간에 s로 바뀝니다.

2. Git Bash에서 Ctrl + V가 안 될 때 해결법

Windows용 Git Bash(MinTTY)에서는 Ctrl + V가 ‘붙여넣기’로 선점되어 있어 비주얼 모드가 작동하지 않을 수 있습니다. 이럴 땐 당황하지 말고 아래 방법을 시도하세요.

  • 대체 키 사용: Ctrl + q를 누르면 동일하게 작동합니다.
  • 설정 변경:
    • Git Bash 창 상단 바 우클릭 -> Options... -> Keys
    • Ctrl+Shift+letter shortcuts를 활성화하거나 붙여넣기 단축키를 해제하면 Ctrl + V를 Vim 본연의 기능으로 쓸 수 있습니다.

3. 다른 유용한 팁

  • 되돌리기: 실수했다면 명령 모드에서 u를 눌러 즉시 복구하세요.
  • 다시 실행: 되돌린 걸 취소하려면 Ctrl + r을 누르면 됩니다.
  • 명령어로 처리: 블록 지정도 귀찮다면 아래 명령어로 2행부터 끝까지 한 번에 바꿀 수 있습니다.
      :2,$s/^pick/s/
    

이 방법을 익혀두면 반복적인 편집 작업 시간을 획기적으로 줄일 수 있습니다!

댓글남기기