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 |