반응형
처음 사용하면 저장은 고사하고 닫는 것도 쉽지 않은 Vim의 단축키를 알아보자.
대문자는 shift+소문자
와 같고 :
는 shift+;
이다.
탐색:
- h: 왼쪽으로 이동
- j: 아래로 이동
- k: 위로 이동
- l: 오른쪽으로 이동
- gg: 문서의 처음으로 이동
- G : 문서의 끝으로 이동
- :[줄 번호]: 특정 줄 번호로 이동
편집 1:
- i: 삽입 모드(커서 앞에 텍스트 삽입)
- a: 삽입 모드(커서 뒤에 텍스트 삽입)
- o: 삽입 모드(현재 줄 아래 새 줄에 텍스트 삽입)
- O: 삽입 모드(현재 줄 위의 새 줄에 텍스트 삽입)
- x: 커서 아래 문자 삭제
- dd: 현재 줄 삭제
- y: 현재 문자 또는 선택 항목 복사(복사)
- p: 마지막으로 잡아당긴 텍스트 붙여넣기
- u: 마지막 작업 취소
- Ctrl+r: 마지막 실행 취소 작업 다시 실행
검색:
- /: 앞으로 검색
- ?: 뒤로 검색
- n : 다음 검색 결과로 이동
- N : 이전 검색 결과로 이동
나가기:
- :w: 변경 사항 저장
- :q: 종료
- :q!: 변경 사항을 저장하지 않고 종료
- :wq: 저장하고 종료
비주얼 모드:
- v: 비주얼 모드 시작(캐릭터 선택)
- V: 비주얼 라인 모드 시작 (전체 라인 선택)
- Ctrl+v: 시각적 블록 모드 시작(직사각형 텍스트 블록 선택)
편집 2:
- r: 문자 바꾸기
- cw: 단어 변경(현재 단어를 삭제하고 삽입 모드로 진입)
- ci": 큰따옴표 안의 텍스트 변경
- ci(: 괄호 안의 텍스트 변경
- .: 마지막 명령 반복
- :%s/old/new/g: 전체 문서에서 "old"를 모두 찾아 "new"로 바꾸기
창 분할:
- :split: 현재 창을 세로로 분할
- :vsplit: 현재 창을 가로로 분할
- Ctrl+w, w: 다음 창으로 전환
- Ctrl+w, [hjkl] : 지정된 방향의 창으로 전환
탭:
- :tabnew: 새 탭 열기
- :tabnext: 다음 탭으로 전환
- :tabprev: 이전 탭으로 전환
- :tabclose: 현재 탭을 닫습니다.
명령줄 모드:
- :! [command]: 쉘 명령 실행
- :r [파일]: 파일의 내용을 문서에 삽입
- :w [file]: 문서를 파일로 저장
- :e [file]: 편집할 파일 열기
텍스트 선택:
- v: 비주얼 모드 시작 및 캐릭터 선택
- V: 비주얼 라인 모드 시작 및 전체 라인 선택
- Ctrl+v: 시각적 블록 모드 시작 및 사각형 텍스트 블록 선택
- o : 커서를 선택의 다른 끝으로 이동
텍스트 조작:
- d: 선택한 텍스트 삭제
- y: 선택한 텍스트 복사(복사)
- p: 마지막으로 잡아당긴 텍스트 붙여넣기
- c: 선택한 텍스트 변경(삭제 및 삽입 모드 진입)
- ~: 선택한 텍스트의 대소문자 변경
- |: 선택한 텍스트 들여쓰기
- <: 선택한 텍스트 들여쓰기 해제
검색 및 교체:
- :s/old/new/g: 선택에서 "old"의 모든 항목을 "new"로 바꾸기
- :'<,'>s/old/new/g: 선택한 줄에서 "old"를 모두 "new"로 바꾸기
직사각형 선택:
- Ctrl+v: 비주얼 블록 모드 시작
- I: 선택 시작 부분에 삽입 모드
- A: 선택 종료 시 삽입 모드
- r: 선택 항목을 단일 문자로 교체
- x: 선택 항목 삭제
- I[insert text]<Esc> : 선택한 블록에 텍스트 삽입
복사하여 붙여넣기:
- yy: 현재 줄 복사
- [숫자]yy: [숫자]줄 복사
- p: 마지막으로 잡아당긴 텍스트를 커서 아래에 붙여넣기
- P: 마지막으로 잡아당긴 텍스트를 커서 위에 붙여넣기
- :[줄 번호]p: 지정된 줄 번호 뒤에 마지막으로 잡아당긴 텍스트를 붙여넣기
- :[줄 번호]put: 지정된 줄 번호 앞에 마지막으로 잡아당긴 텍스트를 붙여넣기
삭제:
- x: 커서 아래 문자 삭제
- [숫자]x: [숫자]자 삭제
- dd: 현재 줄 삭제
- [숫자]dd: [숫자]줄 삭제
- d$ : 커서 위치부터 줄 끝까지 삭제
- d^: 커서 위치부터 줄 처음까지 삭제
변경:
- r: 커서 아래의 문자를 새 문자로 교체
- [숫자]r[문자]: [숫자] 문자를 지정된 문자로 바꿉니다.
- cw: 현재 단어 변경(삭제 후 삽입 모드 진입)
- c$ : 커서 위치에서 줄 끝으로 변경(삭제 후 삽입 모드 진입)
- c^: 커서 위치에서 줄의 처음으로 변경(삭제 및 삽입 모드 진입)
들여쓰기:
- |: 현재 행 들여쓰기
- [숫자]>: [숫자]줄 들여쓰기
- <: 현재 줄 들여쓰기 해제
- [숫자]<: [숫자]줄 들여쓰기 해제
- =: 현재 줄 자동 들여쓰기
검색 및 교체:
- /: 앞으로 패턴을 검색
- ?: 패턴을 역방향으로 검색
- :s/old/new/g: 현재 행에서 "old"를 모두 "new"로 바꾸기
- :%s/old/new/g: 전체 문서에서 "old"를 모두 "new"로 바꾸기
- :[range]s/old/new/g: 지정된 줄 범위에서 모든 "old" 항목을 "new"로 바꾸기
한 줄로 설명이 어려운 다른 유용한 기능들은(직사각형 선택 후 주석 처리 등) 다음 글에서 다뤄보겠다.
반응형
'코딩 환경 > Vim' 카테고리의 다른 글
[Vim] Vim, Vi 여러 줄 주석 처리/해제하기 (0) | 2023.03.13 |
---|---|
[vim] vi, vim에서 자동 완성 기능 설정하기 (2) | 2023.02.21 |
[vim] vi, vim 이전 커서 위치 기억 (0) | 2023.02.20 |
[vim] vi, vim 설정 / Setting .vimrc (0) | 2023.02.20 |