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