vi
: 리눅스에서 사용하는 파일을 편집하기 위한 에디터
명령모드, 입력모드, 마지막 행 모드로 총 3가지 모드로 구성있다
1. 명령 모드 (command mode) : 처음 vi 명령어로 vi를 시작하게 되면 들어가지는 모드이다. 방향키를 이용해 커서를 이동할 수 있으며 명령어를 사용해 편집을 할 수 있다.
2. 입력 모드 (insert mode) : 명령모드에서 "i" 나 "a" 명령을 통해서 입력 모드로 들어갈 수 있다. 자유롭게 코드나 글을 작성할 수 있다.
다시 명령 모드로 돌아가기 위해서는 ESC를 누르면 된다.
3. 마지막 행 모드 (Last line mode) : 명령 모드에서 : (콜론)을 입력하면 화면 맨 밑단에 입력할 수 있는 공간이 나타난다. 이 입력칸에서 현재까지 작성한 내용을 저장하고 vi를 종료할지 (wq) , 그냥 종료 (q, q!)할지 등을 입력할 수 있다.
명령 모드에서의 명령어 (처음 들어갔을 때 or ESC 눌렀을 때)
엔터를 치지 않아도 명령이 실행됨
vi 명령어 | 동작 |
i | 현재 커서 위치에서 삽입 (입력모드로 전환) |
a | 현재 커서 바로 다음 위치에 삽입 (입력모드로 전환) |
o (영어 소문자) | 현재 줄 다음 위치에 삽입 (입력모드로 전환) |
x | 커서가 위치한 곳의 글자 1개 삭제 (5x : 문자 5개 삭제) |
dw | 커서가 위치한 곳에서부터 단어 삭제 (커서가 위치한 곳부터 띄어쓰기까지) |
dd | 커서가 위치한 곳의 한 줄 삭제 (삭제이지만, p로 복구 가능) |
u | 방금 한 명령 취소 (ctrl + z 와 흡사) |
yy | 현재 줄을 버퍼로 복사 (한줄을 ctrl + c한다고 생각하면 됨) 5줄 복사 : 5yy |
p | 현재 커서가 있는 줄 바로 아래에 버퍼 내용 붙여넣기 (이전에 복사한 줄을 현재 커서 아래부터 ctrl + v 한다고 생각하면 됨) 5dd를 이용해서 다섯줄을 지운 것도 p 한번으로 붙여넣기 가능 >> 잘라내기 dd -> 붙여넣기 p |
(n)dd | n 행 삭제 (삭제처럼 보이지만 실제로는 버퍼에 들어가 있음 >> p로 붙여넣기 가능) 잘라내기와 흡사함 (ctrl + x) vi에서 여러줄을 삭제하고 싶다면 사용하면 됨 |
k | 위로 (커서가 한줄 위로 올라감) |
j | 아래로 (커서가 한줄 아래로 내려감) |
l(소문자 L) | 오른쪽으로 (커서가 한칸 우측으로 감) |
h | 왼쪽으로 (커서가 한칸 좌측으로 감) |
0 (숫자) | 커서가 있는 줄의 맨 앞으로 간다 (home 키와 흡사) |
$ | 커서가 있는 줄의 맨 뒤로 간다 (end 키와 흡사) |
( | 현재 문장의 처음 |
) | 현재 문장의 끝 |
{ | 현재 문단의 처음 |
} | 현재 문단의 끝 |
숫자- | 숫자 만큼 윗 줄로 이동 |
숫자+ | 숫자 만큰 아래 줄로 이동 |
G | 파일의 끝으로 이동 |
r | 한문자 변경 |
cc | 커서가 있는 그 줄의 내용 변경 |
마지막 행 모드에서의 명령어 (ESC & : 눌렀을 때)
명령어 입력 후 엔터를 쳐야 명령이 실행됨
vi 명령어 | 동작 |
w | 현재 파일명으로 파일 저장 (저장만 함 꺼지지 않음) |
w [파일명] | 입력한 파일명으로 파일 저장 (저장만 함 꺼지지 않음) |
q | vi 종료 (저장되지 않음) |
q! | vi 강제 종료 (!가 붙으면 강제로 수행) |
wq | 저장 후 종료 |
wq! | 강제 저장 후 종료 (! 가 붙으면 강제로 수행) |
f [파일명] | 파일이름을 [파일명]으로 변경 ex: f teamlog.txt |
숫자 | 해당 라인으로 커서 이동 |
$ | 파일 맨 끝 줄로 이동 |
e! | 마지막 저장 이후 모든 편집 취소 |
/문자열 | 현재 커서 위치에서부터 파일 앞쪽으로 문자열 탐색 |
?문자열 | 현재 커서 위치에서부터 파일 뒤쪽으로 문자열 탐색 |
set nu | vi 라인 번호 출력 |
set nonu | vi 라인 번호 출력 취소 |