파일을 작성하거나 수정하기 위해서는 편집기가 필요하다.
윈도우에서는 메모장을 편집기의 기본으로 지원하는 반면 리눅스에서는 기본 편집기로 vi 라는 편집기를 지원한다. vi는 리눅스에서 일반적으로 사용하는 화면 편집기다.
명령이 매우 단순하여 빠르게 편집할 수 있어 사용법만 익힌다면 효율적으로 활용할 수 있다.
내용을 편집한 후 vi를 종료하려면 명령모드나 마지막 행 모드에서 명령을 입력해야 한다. 마지막 행 모드로 가려면 : 을 누르면 된다. 명령모드에서 파일의 저장과 종료를 동시에 수행하려면 대문자ZZ를 누르면 파일을 저장한 후 vi를 바로 종료한다.
i
: 현재 커서 앞에 입력한다.
a
: 현재 커서 뒤에 입력한다.
o
: 커서가 위치한 행의 다음 행에 입력한다.
I(대문자 i)
: 커서가 위치한 행의 첫 컬럼으로 이동하여 입력한다.
A
: 커서가 위치한 행의 마지막 컬럼으로 이동하여 입력한다.
O
: 커서가 위치한 행의 이전 행에 입력한다.
vi 편집기에서 내용을 입력하려면 입력모드로 전환해야 한다.
k
: 커서를 위로 이동한다.
j
: 커서를 아래로 이동한다.
h
: 커서를 왼쪽으로 이동한다.
l
: 커서를 오른쪽으로 이동한다.
^ / O
: 커서를 현재 행의 처음으로 이동한다.
$
: 커서를 현재 행의 마지막으로 이동한다.
-
: 커서를 한줄 위 처음으로 이동한다.
+ / Enter
: 커서를 다음 행의 처음으로 이동한다.
H
: 커서를 화면의 맨 윗행으로 이동한다.
M
: 커서를 화면의 중간 행으로 이동한다.
L
: 커서를 화면의 맨 아랫행으로 이동한다.
w
: 커서를 다음 단어의 첫 글자로 이동한다.
b
: 커서를 앞 단어의 첫 글자로 이동한다.
e
: 커서를 다음 단어의 마지막 글자로 이동한다.
G
: 파일의 마지막 행으로 커서를 이동한다.
행번호G
: 지정한 행 번호로 커서를 이동한다.
:행번호
: 지정한 행 번호로 커서를 이동한다. (마지
막 행 모드)
:$
: 파일의 마지막 행으로 커서를 이동한다. (마지막 행 모드)
vi에서는 마우스로 커서를 이동할 수 없고 오로지 키보드로만 커서를 이동할 수 있다.
Ctrl + u
: 화면의 절반 만큼 위로 이동한다.
Ctrl +ㅇ
: 화면의 절반 만큼 아래로 이동한다.
Ctrl + b / Page Up
: 한화면 위로 이동한다.
Ctrl + f / Page Down
: 한화면 아래로 이동한다.
Ctrl + y
: 화면을 한 행 위로 이동한다.
Ctrl + e
: 화면을 한 행 아래로 이동한다.
파일의 크기가 터미널 화면의 크기보다 클 경우에는 화면을 이동해야 한다.
r
: 커서가 위치한 글자를 다른 글자로 수정한다.
cw, [수정할 단어 수]cw
: 커서위치에서부터 현재 단어의 끝까지 수정한다. 숫자cw는 커서 위치로부터 지정한 숫자의 단어 만큼 수정한다.
s, [수정할 글자 수]s
: 커서 위치로부터 ESC키를 입력할때까지 수정한다. 숫자s는 커서 위치로부터 지정한 숫자만의 글자를 수정한다.
cc
: 커서가 위치한 행의 내용을 모두 수정한다.
C
: 커서 위치로부터 행의 끝까지 수정한다.
vi에서는 내용을 수정할 수 있는 다양한 명령어를 제공한다.
x, [삭제할 글자 수]x
: 커서가 위치한 글자를 삭제한다. x앞에 삭제할 글자수를 지정할수도 있다.
dw, [삭제할 단어 수]dw
: 커서가 위치한 단어를 삭제한다. dw앞에 삭제할 단어수를 지정할수도 있다.
dd, [삭제할 행 수]dd
: 커서가 위치한 행을 삭제한다. dd앞에 삭제할 행의수를 지정할수도 있다.
D
: 커서 위치로부터 행의 끝까지 삭제한다.
vi에서는 내용을 삭제할 수 있는 다양한 명령어를 제공한다.
u
: 명령을 취소한다.
U
: 해당 행에서 한 모든 명령을 취소한다.
:e!
: 마지막으로 저장한 내용 이후의 것을 모두 취소한다.
vi에서 명령을 잘못 입력한 경우 그 명령을 취소할수도 있다. 윈도우에서의 Ctrl +Z와 비슷한 기능이라고 생각하면 된다.
1, $, %
: 1행부터 마지막 행까지 범위를 지정한다.
1,.
: 1행부터 커서가 있는 행까지 지정한다.
.,$
: 커서가 있는 행부터 마지막 행까지 지정한다.
.,.+2
: 현재 행과 두번째 아랫행까지 지정한다.
10,20
: 10행부터 20행까지 지정한다.
윈도우에서는 마우스를 드래그하면 범위를 지정할 수 있지만 vi에서는 위의 명령키를 입력하여 범위를 지정해야 한다.
yy, [복사할 행 수]yy
: 커서가 위치한 행을 복사한다. yy앞에 복사할 행의 수를 지정할 수도 있다.
dd, [잘라내기할 행 수]dd
: 커서가 위치한 행을 잘라내기한다. 삭제와 같은 명령어다. dd앞에 잘라내기할 행 숫자를 입력할 수도 있다.
p
: 커서가 위치한 행의 아래쪽에 붙여넣기를 한다.
P
: 커서가 위치한 행의 위쪽에 붙여넣기를 한다.
vi에서도 일반적인 편집기처럼 내용을 복사하거나 잘라붙이기도 가능하다.
/문자열
: 문자열을 커서 아래 방향으로 검색한다.
?문자열
: 문자열을 커서 위 방향으로 검색한다.
n
: 원래 방향으로 다음 문자열을 검색한다.
N
: 반대 방향으로 다음 문자열을 검색한다.
윈도우에서 Ctrl+F를 하여 문자열을 검색하듯 vi에서도 문자열을 검색할 수 있다.
:s/[대상문자열]/[바꿀문자열]
: 커서가 위치한 행에서 첫번째로 나오는 대상문자열을 바꿀문자열로 바꾼다.
:%s[대상문자열]/[바꿀문자열]
: 파일 전체에서 모든 대상문자열을 바꿀문자열로 바꾼다.
:[범위]s[대상문자열]/[바꿀문자열]
: 범위 내 모든 각 행에서 첫번쨰로 나오는 대상문자열을 바꿀문자열로 바꾼다.
:[범위]s[대상문자열]/[바꿀문자열]g
: 범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꾼다.
:[범위]s[대상문자열]/[바꿀문자열]gc
: 범위 내 모든 행에서 대상문자열을 바꿀문자열로 바꾸되 수정할 지 여부를 묻는다.
문자열을 바꿀 수도 있다. 다만 문자열을 바꿀때에는 마지막 행모드로 전환을 해야만 사용이 가능하다. 명령어 앞의 : 는 마지막 행모드로 전환하는 명령키이다.