저장 및 종료 명령어
| 명령어 | 설명 |
| :w | 파일 저장 |
| :w filename | 파일명을 filename으로 저장 |
| :w >> filename | 파일 filename에 이어쓰기(Append) |
| :q | 파일을 저장하지 않고 vim 종료 (종료하기 전, 저장할지 안할지 묻는 메시지 출력됨) |
| :q! | 파일을 저장하지 않고 vim 종료(강제 종료) |
| ZZ | 파일 저장 후 종료 |
| :wq | 파일 저장 후 종료 |
| :wq! | 파일 강제 저장 및 강제 종료 |
| :e filename | 파일 불러오기 |
명령 모드에서 입력 모드로 전환
| 명령어 | 설명 |
| i | 커서 위치에서 입력 모드 전환 |
| a | 커서 위치 다음 칸부터 입력 모드 전환 |
| o | 커서 위치의 다음 행을 개행한 후 입력 모드 전환 |
| s | 커서 위치의 한 글자를 지우고 입력(한 글자를 지움 + i 모드) |
| r | 커서의 글자를 뒤에 입력하는 글자로 대체(입력 모드로 전환되지 않음) |
| A | 커서 행의 맨 마지막부터 입력 |
| I | 커서 행의 맨 앞 위치에서 입력 |
| O | 커서 위치의 이전 행을 개행한 후 입력 모드 전환 |
| cc | 커서 위치의 한 행을 지우고 입력 |
| R | 커서부터 뒤에 입력하는 글자로 대체(입력 모드로 전환됨) |
명령 모드에서 커서 이동
| 명령어 | 설명 |
| h 또는 ← | 왼쪽으로 이동 |
| j 또는 ↓ | 아래로 이동 |
| k 또는 ↑ | 위로 이동 |
| l 또는 → | 오른쪽으로 이동 |
※ 방향키 이동은 vi에서는 지원하지 않고, vim에서만 지원함
명령 모드에서 행의 양끝으로 이동
| 명령어 | 설명 |
| ^ | 현재 행의 첫 글자로 이동 |
| $ | 현재 행의 마지막 글자로 이동 |
명령 모드에서 단어 단위로 이동
| 명령어 | 설명 |
| w, W | 다음 단어의 첫 글자의 이동 |
| b, B | 단어의 첫 글자로 이동 (커서가 이미 첫 글자에 있으면, 이전 단어의 첫 글자로 이동) |
| e, E | 단어의 마지막 글자로 이동 (커서가 이미 마지막 글자에 있으면, 다음 단어의 마지막 글자로 이동) |
명령 모드에서 다른 행으로 이동
| 명령어 | 설명 |
| [Enter] | 다음 행의 첫 글자로 이동 |
| gg, 1G | 문서의 첫 행으로 이동 |
| G | 문서의 마지막 행으로 이동 |
| [n]G 또는 :[n] | n행으로 이동 (예) 10G 또는 :10 |
| M | 커서를 화면의 중앙으로 이동 |
화면 스크롤
| 명령어 | 설명 |
| [Ctrl] + u | 반 화면 위로 스크롤 (up) |
| [Ctrl] + d | 반 화면 아래로 스크롤 (down) |
| [Ctrl] + b | 한 화면 위로 스크롤 (back, backward) |
| [Ctrl] + f | 한 화면 아래로 스크롤 (front, forward) |
삭제(잘라내기)
| 명령어 | 설명 |
| x 또는 dl | 커서 위치의 한 글자 삭제 |
| dw | 커서 위치부터 다음 단어의 첫 글자 직전까지 삭제(공백도 함께 삭제) |
| dd 또는 dx | 커서 위치의 행(한 줄) 전체 삭제 |
| D, d$ | 커서가 위치부터 행의 끝까지 삭제 |
| [n]x | 커서 위치부터 n개의 글자 삭제 (예) 10x |
| [n]dd | 현재 행부터 n개의 행을 삭제 (예) 10dd |
복사 및 붙여넣기
| 명령어 | 설명 |
| yy | 커서 위치의 행(한 줄) 전체 복사 |
| yw | 커서 위치부터 다음 단어의 첫 글자 직전까지 복사(공백도 함께 복사) |
| [n]yy | 현재 행부터 n개의 행 복사 (예) 10yy |
| [n]yw | 커서 위치부터 n개의 단어 복사 (공백도 함께 복사되지만 단어 개수에는 합산되지 않음) (예) 10yw |
| p | 커서 위치에 붙여넣기 |
블록 지정
| 명령어 | 설명 |
| v | 블록 지정(커서 이동 키 사용) |
| [Ctrl] + v | 직사각형 형태의 블록 지정(커서 이동 키 사용) |
| y | 선택한 블록을 복사(yank) |
| d | 선택한 블록을 삭제(delete) |
| > | 선택한 블록의 행 들여쓰기(Tab 삽입) |
| < | 선택한 블록의 행 내어쓰기(Tab 제거) |
실행 취소 및 다시 실행
| 명령어 | 설명 |
| u | 실행 취소(undo) |
| [Ctrl] + r | 다시 실행(redo) |
명령 모드에서 shell 명령어 사용
| 명령어 | 설명 |
| :!<명령어> | 명령 모드에서 shell 명령어 사용 (예) :!ls, :!pwd |
문자열 탐색
| 명령어 | 설명 |
| / <키워드> | 정방향 검색 시작 |
| ? <키워드> | 역방향 검색 시작 |
| n | (검색 중일 때) 다음 문자열로 이동 |
| N | (검색 중일 때) 이전 문자열로 이동 |
문자열 치환
| 명령어 |
| :[범위]s/[찾을 문자열]/[바꿀 문자열]/[옵션] |
| [범위] | 설명 |
| (범위 미설정) | 현재 행 (예) :s/old/new/g |
| % | 문서 전체 (예) :%s/old/new/g |
| 1, $ | 1행부터 마지막 행($)까지 (예) :%1,$/old/new/g |
| 1, . | 1행부터 현재 행(.)까지 (예) :%1,./old/new/g |
| ., $ | 현재 행(.)부터 마지막 행($)까지 (예) :%.,$/old/new/g |
| n, m | n행부터 m행까지 (예) :%10,20/old/new/g (예) 10, 20 |
| -[n], +[m] | 현재 행의 n행 위부터 m행 아래까지 (예) :%-3,+4/old/new/g |
| [옵션] | 설명 |
| g | 범위 내 매칭되는 모든 문자열 치환 (g 옵션이 없을 경우, 각 행의 첫 번째 문자열만 치환) |
| c | 대화형으로 치환(각 문자열마다 바꿀 것인지 여부를 물어봄) |
'Linux > Linux 관련 노하우' 카테고리의 다른 글
| Linux에서 GitHub에 Push할 때 인증 생략하기 (0) | 2023.04.10 |
|---|---|
| Linux에서 Git & GitHub 사용하기(명령어 요약) (0) | 2023.04.10 |
| Linux 기본 명령어 요약 (0) | 2022.10.31 |
| Linux에서 'nslookup: 명령어를 찾을 수 없음' 해결 (0) | 2022.10.23 |
| Linux 환경에 접속하기 위한 4가지 수단 (0) | 2022.10.02 |