본문 바로가기

~2023

[vi/vim] vi/vim 명령어 깔끔하게 정리

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
반응형