vi는 가벼운 텍스트 데이터라서 서버에서 간단한 텍스트 수정 작업을 할 때 자주 사용한다.
그래서 Unix에서는 vi editor가 기본으로 설치되어 있어 자주 사용하고 Linux도 vi가 있지만, vi를 개선한 vim editor를 사용한다.
두 가지 모드로 명령 모드와 입력 모드가 있는데 입력 모드는 단어 뜻 그대로 사용자가 키보드를 통해 입력을 하는 모드이고 명령 모드는 vi/vim editor의 명령어를 통해 커서를 이동하거나 복사 또는 삭제하고 저장 또는 종료를 한다.
커서 이동 명령
명령어 |
설명 |
h |
왼쪽으로 한 칸 이동 |
j |
아래로 한 칸 이동 |
k |
위로 한 칸 이동 |
l |
오른쪽으로 한 칸 이동 |
$ |
줄 끝으로 이동 |
0 |
줄 앞으로 이동 |
^ |
줄 앞의 첫 문자로 이동 |
w |
다음 단어로 이동 |
b |
이전 단어로 이동 |
G |
마지막 줄로 이동 |
[숫자]G |
[숫자] 라인으로 이동 |
Ctrl + f |
한 페이지 아래로 이동 |
Ctrl + b |
한 페이지 위로 이동 |
저장 & 종료 명령
명령어 |
설명 |
:q! + Enter |
저장하지 않고 vim 강제 종료 |
:wq + Enter |
저장하고 vim 종료 |
ZZ |
저장하고 vim 종료 |
:w + Enter |
파일을 저장 |
:w [새로운 파일명] + Enter |
새로운 파일명으로 파일 저장 |
삭제 명령
명령어 |
설명 |
x |
delete와 같이 작동 |
X |
backspace와 같이 작동 |
dw |
커서 위치부터 단어 끝까지 삭제 |
d$ |
커서 위치부터 줄 끝까지 삭제 |
D |
커서 위치에서 줄 끝까지 삭제 |
dd |
커서 위치의 한 줄 삭제 |
J |
커서가 위치한 줄의 줄바꿈 문자를 삭제 -> 아래 줄이 올라옴 |
d[이동명령] |
현재 커서 위치부터 이동 명령에 의해 이동할 위치까지 삭제 |
입력 모드 시작하기
명령어 |
설명 |
i |
현재 커서 위치에서 입력 모드 시작 |
a |
현재 커서 위치의 한 칸 오른쪽에서 입력 모드 시작 |
A |
현재 커서 위치의 줄 끝에서 입력 모드 시작 |
o |
현재 커서 위치의 한 줄 아래에 빈 줄을 삽입하고 그 빈 줄에서 입력 모드 시작 |
찾기
명령어 |
설명 |
/[“정규식”] |
아래 방향으로 “정규식”에 일치하는 문자열을 찾음 |
?[“정규식] |
윗 방향으로 “정규식”에 일치하는 문자열을 찾음 |
n |
직접 찾기를 아래 방향으로 계속 |
N |
직전 찾기를 윗 방향으로 계속 |
찾은 후 바꾸기
1
| :[시작 행, 끝 행][s/][정규식]/[바꿀 문자열]/[옵션]
|
- [시작 행, 끝 행]
- 1,100: 1번째 행부터 100번째 행 안에서 찾은 후 바꾸기
- ., 50: 현재 행부터 50번째 행 안에서 찾은 후 바꾸기
- .,$: 현재 행부터 끝 행 안에서 찾은 후 바꾸기
- %: 문서 전체에서 찾은 후 바꾸기
- [s/]
- 구분자(위 예에서는 ‘/’)를 지정하는 명령어인데 ‘s,’로 선언할 경우 [] 사이의 ‘/’가 아닌 ‘,’로 적어주면 된다.
- [옵션]
- g: 범위 내에 해당 문자열을 바꾸기
- i: 대소문자 무시
- c: 문자열 바꾸기 전에 확인 과정을 거침
명령문 반복
명령어 |
설명 |
3j |
커서가 3줄 아래로 이동 |
6w |
6번째 다음 단어로 이동 |
3 Ctrl + f |
화면 아래로 3번 이동 |
4dd |
현재 커서 위치에서 4줄 삭제 |
5x |
delete 키를 5번 누름 |
복사 및 붙여넣기
명령어 |
설명 |
p |
클립보드의 내용을 현재 커서 위치에서 한 칸 오른쪽에 붙여넣기 |
yy |
현재 커서가 위치한 줄이 클립보드에 복사 |
3yy |
현재 커서부터 3줄이 클립보드에 복사 |
y[이동명령] |
현재 커서부터 이동 명령에 의해 이동할 위치까지 클립보드에 복사 |
d[이동명령] |
현재 커서부터 이동 명령에 의해 이동할 위치까지 클립보드에 잘라내기 |
마크 찍기 및 마크로 이동
명령어 |
설명 |
ma |
현재 커서가 위치한 곳에 a 마크 생성 |
mb |
현재 커서가 위치한 곳에 b 마크 생성 |
`a |
a 마크 위치로 커서 이동 |
`b |
b 마크 위치로 커서 이동 |
기타
명령어 |
설명 |
Ctrl + g |
현재 커서 위치의 줄 번호를 화면 아래 쪽에 출력 |
. |
직전 명령을 한 번 더 실행 |