1. 기본 사용 방법
1) 시작
| 명령 | 설명 |
|---|
| vim | 저장할 때 반드시 파일 이름을 지정해 주어야 함 |
| vim [파일명] | 해당 파일명으로 자동으로 저장됨 |
파일의 경우 저장할 때 생성됨
2) 저장
| 명령 | 설명 |
|---|
| :w | 파일을 저장 |
| :w [파일명] | 파일을 해당 파일명으로 저장 |
| :w! | 파일을 강제로 저장, 해당 파일이 이미 존재한다면 덮어씌움 |
| :w! [파일명] | 파일을 강제로 저장, 해당 파일이 이미 존재한다면 덮어씌움 |
3) 종료
| 명령 | 설명 |
|---|
| :q | 편집기 종료, 파일이 수정된 채로 저장되어 있지 않다면 오류 발생 |
| :q! | 편집기 강제 종료 |
| :wq 혹은 x | w와q명령어 동시에 실행 |
2. 명령 모드
1) 문자의 입력
| 명령 | 설명 |
|---|
| a | 현재 커서 위치 다음에 문자 입력 |
| A | 현재 커서 위치 라인의 끝에 문자 입력 |
| i | 현재 커서 위치에 문자 입력 |
| I | 현재 커서 위치 라인의 앞에 문자 입력 |
| o | 현재 커서 위치 라인의 아래에 새로운 문장 입력 |
| O | 현재 커서 위치 라인의 위에 새로운 문장 입력 |
2) 문자의 수정
| 명령 | 설명 |
|---|
| r | 커서가 위치한 곳 한 글자만 다른 글자로 변경 |
| R | 커서가 위치한 곳 글자를 다른 글자로 변경 esc를 입력 할 때 까지 수행 |
| [n]s | 커서가 위치한 글자를 지우고 해당 위치 입력모드 전환, n은 몇 개의 글자를 지울지 결정 |
| [n]S | 커서가 위치한 라인을 지우고 해당 위치 입력모드 전환, n은 몇 개의 라인을 지울지 결정 |
| [n]cw | 현재 커서 기준 뒤쪽으로 위치한 단어를 제거하고 해당 위치 입력모드 전환, n은 몇 개의 단어를 제거할 지 결정 |
| C | 현재 커서 기준으로 커서 위치 글자부터 라인 맨 끝까지 제거 및 해당 위치 입력모드 전환 |
| [n]cc | [n]S와 동일한 기능 |
3) 문자의 삭제
| 명령 | 설명 |
|---|
| [n]x | 커서가 위치한 곳 뒤의 글자를 제거(del과 같은 효과), n은 몇 개를 제거할 지 결정 |
| [n]X | 커서가 위치한 곳 앞의 글자를 제거(backspace과 같은 효과), n은 몇 개를 제거할 지 결정 |
| [n]dw | 커서가 위치한 곳 뒤의 단어를 제거, n은 몇 개를 제거할 지 결정 |
| d0 | 커서가 위치한 곳 기준 라인 맨 앞까지 제거 |
| d$ | 커서가 위치한 곳 기준 라인 맨 뒤까지 제거 |
| [n]dd | 커서가 위치한 곳 라인 제거, n은 몇 개를 제거할 지 결정 |
| p | 커서가 위치한 곳 기준 뒤 혹은 아래 라인에 붙여넣기 |
| P | 커서가 위치한 곳 기준 앞 혹은 위 라인에 붙여넣기 |
d를 이용한 문자의 삭제는 버퍼에 저장이 되므로 오려넣기와 붙여넣기가 가능하다
d, x 명령어 계열은 삭제와 동시에 오려두기 기능을 한다!!
4) 복사하기
| 명령 | 설명 |
|---|
| [n]yw | 커서가 위치한 곳 뒤의 단어를 복사, n은 몇 개를 제거할 지 결정 |
| y0 | 커서가 위치한 곳 기준 라인 맨 앞까지 복사 |
| y$ | 커서가 위치한 곳 기준 라인 맨 뒤까지 복사 |
| [n]yy | 커서가 위치한 곳 라인 복사, n은 몇 개를 제거할 지 결정 |
| p | 커서가 위치한 곳 기준 뒤 혹은 아래 라인에 붙여넣기 |
| P | 커서가 위치한 곳 기준 앞 혹은 위 라인에 붙여넣기 |
5) 작업 취소, 되돌리기 및 반복
| 명령 | 설명 |
|---|
| u | 이전 작업 취소 |
| . | 직전에 수행한 작업 반복 |
| ctrl+r | 작업 취소한 내용을 다시 실행 즉 작업 취소를 취소 |
6) 화면 이동
| 명령 | 설명 |
|---|
| h | 한 글자 왼쪽 이동 |
| j | 한 문장 아래로 이동 |
| k | 한 문장 위로 이동 |
| l | 한 글자 오른쪽 이동 |
| 명령 | 설명 |
|---|
| w, W | 커서가 위치한 곳 기준 뒤의 단어 첫 글자로 이동 |
| b, B | 커서가 위치한 곳 기준 앞의 단어 첫 글자로 이동 |
| 명령 | 설명 |
|---|
| ^, 0 | 커서를 현재 문장의 첫 글자로 이동 |
| $ | 커서를 현재 문장의 마지막 글자로 이동 |
| [n]+, [n] | 커서를 다음 문장의 첫 글자로 이동, n은 몇 개의 문장을 이동할 것인지 결정 |
| [n]- | 커서를 이전 문장의 첫 글자로 이동, n은 몇 개의 문장을 이동할 것인지 결정 |
| H | 커서를 화면의 제일 윗 문장 맨 앞 글자로 이동 |
| M | 커서를 화면의 가운데 문장 맨 앞 글자로 이동 |
| L | 커서를 화면의 제일 끝 문장 맨 앞 글자로 이동 |
| 명령 | 설명 |
|---|
| ctrl + f | 커서를 다음 화면으로 이동 |
| ctrl + b | 커서를 이전 화면으로 이동 |
| ctrl + d | 커서를 다음 화면의 반만큼 이동 |
| ctrl + u | 커서를 이전 화면의 반만큼 이동 |
| ctrl + y | 커서를 한 행씩 위로 이동 |
| ctrl + e | 커서를 한 행씩 아래로 이동 |
| [n] shift + g | 커서를 맨 마지막 라인의 처음으로 이동, n이 있을 경우 n번째 라인의 처음으로 이동 |
3. 라인 모드
1) 문장으로 이동
2) 범위 지정
이부분의 경우 명령어가 아니라 문법입니다!!
[범위] 부분은 다음의 문법으로 입력하시면 됩니다!!
| 기호 | 설명 |
|---|
| 숫자 | 문장 번호 의미 |
| $ | 마지막 의미 |
| % | 전체 의미 |
| . | 현재 커서가 위치한 문장 의미 |
3) 복사하기 오려두기 붙이기
| 명령 | 설명 |
|---|
| :[n]y | 현재 커서가 있는 라인 복사, n이 있을 시 해당 라인 복사 |
| :[범위]y | 해당 범위 복사 |
| :[n]d | 현재 커서가 있는 라인 오려두기, n이 있을 시 해당 라인 오려두기 |
| :[범위]d | 해당 범위 오려두기 |
| :[n]pu | 현재 커서 위치한 라인 다음으로 붙이기, n이 있을 시 n번째 문장 아래로 붙이기 |
4) 문자열 검색 및 변경
| 명령 | 설명 |
|---|
| /[검색문자열] + n 혹은 N | 현재 커서 위치 기준 아래로 검색, n은 검색 방향 N은 검색 반대 방향으로 다음 문자열 검색 |
| ?[검색문자열] + n 혹은 N | 현재 커서 위치 기준 위로 검색, n은 검색 방향 N은 검색 반대 방향으로 다음 문자열 검색 |
| :s[문자열1]/[문자열2] | 커서 위치 라인의 첫 번쨰 문자열1을 문자열2로 변경 |
| :s[문자열1]/[문자열2]/c | 커서 위치 라인의 첫 번쨰 문자열1을 문자열2로 변경 및 변경 여부 물음 |
| :s[문자열1]/[문자열2]/g | 커서 위치 라인의 모든 문자열1을 문자열2로 변경 |
| :s%[문자열1]/[문자열2]/g | 문서에 존재하는 모든 문자열1을 문자열2로 변경 |
| :[범위]s[문자열1]/[문자열2]/g | 해당 범위 내에서 모든 문자열1을 문자열2로 변경 |
5) 파일 불러오기 및 전환
| 명령 | 설명 |
|---|
| :r [파일명] | 해당 파일을 현재 커서 아래로 삽입 |
| :e [파일명] | 해당 파일로 전환 |
| :n 혹은 :N | 현재 파일에서 n이면 앞으로, N이면 뒤로 전환 |
6) 쉘 사용
| 명령 | 설명 |
|---|
| :! [쉘명령어] | 해당 쉘명령어 결과 출력 |
| :sh | 쉘 프롬프트로 전환, exit입력 시 다시 vim으로 돌아옴 |
기본 적인 내용이니 이 정도는 외워두자!!
Reference
- 시스템운영과 관리 우분투 리눅스 / 저자 : 이광, 김봉근, 안준호 / 출판사 : 도서출판 글로벌