※Mac에서 터미널을 사용해서 원격지의 우분투리눅스 pc로 ssh접속할 때 기준이다.
vi 시작과 종료
시작 - vi
종료 - :q
저장하지 않고 종료: q!
※vi를 사용하다가 "길을 잃었다면" ESC 키를 두 번 입력하라. 그럼 다시 방향을 잡아 줄 것이다.
편집모드
vi로 새 파일 만들기 : vi 파일명 or 파일명.확장자 vi foo.txt (리눅스는 파일에 확장자가 없는 것도 파일로 간주한다.)
저장하기 - :w
텍스트 입력모드 들어가기 - :i
커서 이동
키 |
커서 이동방향 |
l 또는 오른쪽 방향키 |
오른쪽 한문자 |
h 또는 왼쪽 방향키 |
왼쪽 한문자 |
j 또는 아래쪽 방향키 |
한 줄 아래로 |
k 또는 위쪽 방향키 |
한 줄 위로 |
0 (zero) |
현재 줄 처음으로 |
shift-6 ( ^ ) |
현재 줄 첫번째 공백이 아닌 글자로 |
shift-( $ ) |
현재 줄 마지막으로 |
w (소문자 w) |
다음 단어나 구두점(마침표) 기호 처음으로 |
shift-w |
다음 단어 처음으로, 구두점(마침표) 기호 무시 |
b |
이전 단어나 구두점(마침표) 기호 처음으로 |
shift-B |
이전 단어나 구두점(마침표) 기호 처음으로 |
control - f 또는 fn - 방향키 아래쪽 방향키 |
한 페이지 아래로 |
control - b 또는 fn - 방향키 위쪽 방향키 |
한 페이지 위로 |
number-shift-G |
줄 번호로 이동(1G를 입력하면 파일의 첫줄로 이동) |
shift-G |
파일의 마지막 줄로 |
기본 편집
실행 취소 - u
※실제 vi는 한 단계 수준의 실행취소만 지원. vim은 몇 단계까지도 가능하다.
빈줄 추가
명령어 |
실행 |
o |
현재 줄 아래에 빈 줄 추가 |
O |
현재 줄 위에 빈 줄 추가 |
텍스트 삭제
d명령어는 단순히 텍스트를 삭제만 하는 것이 아니고 텍스트 "자르기"도 수행한다.
d명령어를 사용할 때마다, 삭제된 내용은 붙이기 버퍼(클립보드를 생각하자)에 복사되어 p명령어로 그 내용을 다시 불러와서 커서 앞 또는 뒤로 붙이기를 수행한다.
y 명령어는 d명령과 매우 비슷한 방법으로 텍스트를 자르고 "복사하는 기능을 수행한다.
명령어 |
삭제 내용 |
x |
현재 문자 |
3x |
현재 문자를 포함한 다음 2개 문자 |
dd |
현재 줄 |
5dd |
현재 줄을 포함한 다음 4줄 |
dW |
현재 커서 위치에서부터 다음 단어 앞까지 |
d$ |
현재 커서 위치에서부터 현재 줄 끝까지 |
d0 (숫자0) |
현재 커서 위치부터 현재 줄 맨 앞까지 |
d^ |
현재 커서 위치부터 그 줄의 공백이 아닌 첫 번째 글자까지 |
dG |
현재 줄부터 그 파일 끝까지 |
d20G |
현재 줄부터 파일의 20번째 줄까지 |
텍스트 자르기, 복사하기 그리고 붙이기
예> yy입력해서 현재 줄 복사 -> 마지막 줄(G)로 커서 이동 후 p 입력하여 붙이기 실행.
명령어 |
복사 내용 |
yy |
현재 줄 복사 |
5yy |
현재 줄을 포함한 다음 4줄 |
yW |
현재 커서 위치부터 다음 단어 앞까지 |
y$ |
현재 커서 위치부터 현재 줄 끝까지 |
y0 |
현재 커서 위치부터 현재 줄 맨 앞까지 |
y^ |
현재 줄부터 그 파일 끝까지 |
yG |
현재 줄부터 그 파일 끝까지 |
y20G |
현재 줄부터 파일의 20번째 줄까지 |
줄 합치기 - J
예> line3 line4 <-- 이렇게아랫줄과 합쳐준다
line3
line4
검색 및 치환
줄에서 텍스트 검색 - f명령
※예를 들어 fo명령어는 현재 줄에 있는 o 문자를 찾아 이동시킨다. 검색을 수행하고 나서 ; (세미콜론)을 입력하면 반복검색이 가능하다.
n명령어를 사용하면 이전 검색어로 검색을 반복해 준다. (이건 안되는 듯...)
The quick brwon fox jmped over the lazy dog.
파일에서 텍스트 검색
/ 명령어 사용된다.
예 >
/The
/quick brwon
/Line
전체 검색 및 치환
vi는 ex명령어를 사용하여 해당 줄이나 파일 전체에서 검색할 내용을 찾아서 바꾸기 작업(vi에서는 치환으로 불린다)을 수행한다. 파일 전체에서 Line을 line으로 바꾸기 위해 다음과 같은 명령어를 입력해야 한다.
:%s/Line/line/g
:1,9s/Line/line/g
:1,$s/Line/line/g
항목 |
뜻 |
: |
콜론 문자는 ex명령어를 실행한다. |
% |
작업을 수행할 줄 범위를 보여주고 있다. % 기호의 의미는 첫 번째 줄부터 마지막 줄까지라는 것을 담고 있다. 그렇지 않으면 1, 5와 같이 범위를 지정할 수 있다(여기에서는 현재 5줄까지만 있다). 또는 1, $를 입력하면 "1번 줄부터 파일의 끝까지"라는 의미로 해석된다. 줄 범위를 지정하지 않으면 현재 라인에만 작업이 수행된다 |
s |
작업을 지정한다. 이 경우에는 치환 작업이다(검색하여 바꾸기) |
/Line/line/ |
검색 패턴과 바꾸고자 하는 텍스트를 입력한다 |
g |
전체를 의미한다. 치환 작업은 매 줄마다 검색 문자열 하나씩 실행되는데, g를 사용하지 않으면 각 줄 마다 첫번째 검색 문자열만 변경된다. |
:%s/Line/line/gc
:1,9s/Line/line/gc
:1,$s/Line/line/gc
사용자 확인 메시지를 표시하는 치환 명령어를 사용할 수 있다. 명령어 끝에 c를 입력하기만 하면 된다.