[TIL] Vim 편리하게 사용하기

so_doit·2022년 2월 20일
0

TIL

목록 보기
3/26

오늘은 알고 있으면 유용한 Vim 단축키에 대해서 정리를 할 예정이다.
모른다고 해서 안될 건 없지만 기왕 Vim 사용하는 거 더 효율적으로 쓸 수 있게 만들어 준다고 생각한다.

Vim 이동

기본 이동

  • h, j, k, l : 좌, 하, 상, 우 커서 이동
  • - : 줄의 처음 위치로 커서 이동
  • gg : 맨 위로 커서 이동
  • shift + g : 맨 아래로 커서 이동

단어 단위로 이동

  • w : 단어의 시작 위치로 커서 이동 (오른쪽 방향)
  • b : 단어의 시작 위치로 커서 이동 (왼쪽 방향)
  • e : 단어의 마지막 위치로 커서 이동 (오른쪽 방향)
  • ge : 단어의 마지막 위치로 커서 이동 (왼쪽 방향)

한 문장 내에서 이동

  • 0 (숫자) : 라인 맨 앞으로 커서 이동
  • ^ : 문장 맨 앞으로 커서 이동
  • $ : 문장 맨 뒤로 커서 이동

현재 페이지에서의 이동

  • shift + h : 현재 보이는 페이지에서 커서를 맨 위로 이동
  • shift + m : 현재 보이는 페이지에서 커서를 중간 위치로 이동
  • shift + l : 현재 보이는 페이지에서 커서를 맨 아래로 이동

페이지 이동

  • ctrl + f : 다음 페이지의 첫 줄로 커서 이동
  • ctrl + b : 다음 페이지의 마지막 줄로 커서 이동
  • ctrl + u : 페이지의 절반 크기만큼 위로 커서 이동
  • ctrl + d : 페이지의 절반 크기만큼 아래로 커서 이동

원하는 줄 위치로 이동

  • 줄 번호 on/off 설정
    on -> [:set number/ :set nu]
    off -> [:set nonumber/ :set nonu]
  • 방법 1
    1. esc 눌러서 명령 모드로 이동
    2. : + 이동하고 싶은 줄 번호 입력
  • 방법 2
    1. esc 눌러서 명령 모드로 이동
    2. 이동할 줄 번호 입력
    3. shift + g 입력

{}을 기준으로 이동

  • ]] : {로 커서 이동 (오른쪽 방향) - 없으면 페이지 맨 아래로 커서 이동
  • [[ : {로 커서 이동 (왼쪽 방향)
  • ][ : }로 커서 이동 (오른쪽 방향) - 없으면 페이지 맨 아래로 커서 이동
  • [] : }로 커서 이동 (왼쪽 방향)
  • % : {}, ()에서 현재 괄호의 짝을 찾아 커서 이동

Vim 선택

문자 단위로 선택

  • v : 문자 단위로 블럭지정이 가능하다

줄 단위 선택

  • shift + v : 줄 단위로 블럭지정이 가능하다

Vim 편집

삭제, 잘라내기, 수정에 관한 단축키

  • dd : 커서가 위치한 줄 잘라내기
  • 숫자 + dd : 커서가 위치한 줄부터 숫자의 줄 만큼 잘라내기
  • dw : 커서가 위치한 곳 부터 단어의 마지막까지 잘라내기
  • shift + d : 현재 커서의 위치부터 줄의 끝까지 잘라내기
  • x : 커서가 위치한 문자 잘라내기 (delete 느낌의 단축키)
  • shift + x : 커서가 위한 문자 잘라내기 (backspace 느낌의 단축키)
  • s : 커서가 위치한 문자 잘라내고 Insert 모드로 변환
  • cc, shift + s : 커서가 위치한 줄 전체 잘라내고 Insert 모드로 변환
  • cw : 커서가 위치한 곳부터 단어의 마지막까지 잘라내고 Insert 모드로 변환
  • shift + c : 현재 커서의 위치부터 줄 마지막까지 잘라내고 Insert 모드로 변환
  • r + 변경할 문자 : 현재 커서의 문자를 변경

복붙 관련 단축키

  • yl : 현재 커서가 위치한 문자 하나만 복사
  • yy : 현재 커서가 위치한 줄 복사
  • yw : 현재 커서의 위치부터 단어의 마지막까지 복사
  • y :
    i. 숫자 + y : 현재 커서의 줄부터 숫자만큼 줄 복사
    ii. y$ : 현재 커서의 위치부터 줄의 끝까지 복사
  • p :
    i. 단어 복사 했을 경우 : 현재 커서 다음 위치에 붙여넣기
    ii. 줄 복사 했을 경우 : 현재 커서 아랫줄에 붙여넣기
  • shift + p :
    i. 단어 복사 했을 경우 : 현재 커서 위치에 붙여넣기
    ii. 줄 복사 했을 경우 : 현재 커서 윗줄에 붙여넣기
  • 숫자 + p : 숫자만큼 붙여넣기 반복

Vim 검색

  • / + 찾을 단어 : 문서에서 단어 찾기
    i. n 또는 * : 다음 찾기
    ii. N 또는 # : 이전 찾기

기타

다음 줄을 현재 커서의 줄 뒤로 붙이기

  • shift + j : 다음 줄을 현재 커서의 줄 뒤로 이어 붙인다

대소문자 전환

  • shift + ~ : 현재 커서의 문자의 대소를 전환한다.

창 열기, 탭 이동

  • : + vs : 현재 창을 세로로 분할된 창으로 열기
  • : + new : 새 창을 현재 창 위에 분할된 창으로 열기
  • ctrl + w 2번 누르기 : 분할된 창 간에 이동
  • : + tabnew : 새 창을 탭으로 열기
  • gt : 오른쪽 탭으로 이동
  • gT : 왼쪽 탭으로 이동

취소하기, 되돌리기

  • u : 이전으로 취소하기
  • ctrl + r : 이전으로 취소한걸 다시 되돌리기

명령어 다시 실행하기

  • . : 이전 명령어를 다시 실행

코드 접기, 펼치기

  • zc : 코드 접기 (fold)
  • zM : 코드 모두 접기 (fold)
  • zo : 접힌 코드 펼치기
  • zR : 접힌 코드 모두 펼치기
  • zd : fold 지우기
  • zD : 모든 fold 지우기

회고

이 외에도 되게 다양한 단축키들이 있지만 일단은 이정도만 외울 것이다.
여기 있는 단축키들을 보지 않고 쓱쓱 사용할 수 있다면, 다른 단축키들도 필요가 느껴진다면 더 외울 예정이다.

효과적으로 외우기 위해 앞으로 코드를 vim으로 작성해 봐야겠다. 계속 사용하다보면 나도 모르게 익숙해져서 쓸 수 있을 것 같다.

profile
백엔드 개발자

0개의 댓글