Quick-reference vi
==================
* 커서를 옮기는 여러가지 방법
( ) 에 있는 키를 선택하여도 됩니다.
k (-)
/\
||
h (bs) <----- -----> l (sp)
bs : BackSpace bar sp : SPace bar
||
\/
j (+)
h, j, k 와 i 를 이용하여 간단히 키보드를 누르면 커서의 위치가 변경됩니다.
화면을 옮기는 여러가지 방법
^f - (FORWARD) 화면을 one page 앞으로 옮김
^b - (BACKWARD) 화면을 one page 뒤로 옮김
^d - (DOWN) 화면을 반 page 앞으로 옮김
^u - (UP) 화면을 반 page 뒤로 옮김
^ 는 키보드의 을 나타내는 것입니다.
한 화면 안에서 커서를 옮기는 방법
H - HOME, 한 화면의 top line으로 옮긴다.
M - MIDDLE, 한 화면의 중간으로 옮긴다.
L - LAST, 한 화면의 마지막 line으로 옮긴다.
G - GOTO, 화일의 마지막 line으로 옮긴다.
nG - GOTO nth line the file (or :n)
^G - GIVES file status
한 line 안에서 커서를 옮기는 방법
w - WORD, 한 단어 앞으로
b - BACKWARD, 한 단어 뒤로
e - END, 현재 커서가 위치한 맨 뒤로
o - zero, line의 맨 앞으로 (or ^)
$ - end, line의 맨 뒤로
검색
/pattern - scan (/) 'pattern'이라는 글자를 현재 커서가 위치한 곳의 다음 단어를 검색
?pattern - scan (?) 'pattern'이라는 글자를 현재 커서가 위치한 곳의 앞 단어를 검색
n - 앞 쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색
N - 앞 쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를 검색
vi를 빠져나가는 방법
:q! - 화일의 내용을 저장하지 않고 exit
:w - WRITE, vi를 빠져나가지 않으면서 내용을 저장
:wq - WRITE and QUIT, vi를 빠져나가면서 내용을 저장
ZZ - :wq의 명령과 같다.
삽입 mode
Note : ESC (escape key) 는 삽입(insert)를 중지 시키고 명령어 mode로 돌아가는 키이다.
i - INSERT, 커서 위치부터 문자 삽입
I - INSERT, line의 맨 앞부터 문자 삽입
a - APPEND, 커서 다음 위치부터 문자 삽입
A - APPEND, 커서 위치한 line의 끝부터 문자 삽입
o - OPEN line, 현재의 line 다음에 line 삽입
O - OPEN line, 현재의 line 앞에 line 삽입
r - REPLACE, 한 문자만을 대치 (does not require ESC)
R - REPLACE, ESC 키가 입력될 때 까지 대치
cw - CHANGE word, 커서가 위치한 곳의 단어 끝까지 대치
(cnw - change n number of words)
C - CHANGE, 커서가 위치한 곳에서 line 끝까지 대치
u - UNDOES, 마지막 명령의 취소
U - UNDOES, line전체를 원 상태로 복구
Note : INSERT mode 를 만드는 모든 문자(i, a, o, r, c, s <대문자 포함>) 를 사용하는 경우 insert mode에서 입력 한 내용을 취소하고자 하면, ESC 를 누르고 undo를 수행하는 u를 입력하면 된다.
Yanking : (Copying)
Y - YANKS (copies) line을 사용자가 보이지 않는 buffer에 저장
nY - YANKS n , n line을 사용자가 보이지 않는 buffer에 저장
Deleting :
x - deletes, 문자 하나를 삭제 (also 'd sp')
dw - DELETES words, 문자 하나를 삭제
D - DELETES, 커서가 있는 곳에서부터 line끝 까지 삭제
dd - DELETES lines, line하나를 삭제하고 보이지 않는 buffer에 저장
ndd - DELETES n, n line을 삭제하고 보이지 않는 buffer에 저장
(i.e., 10dd deletes 10 lines)
Putting :
p - PUTS, 커서가 위치한 다음 line에 보이지 않는 buffer의 내용을 삽입
P - PUTS, 커서가 위치한 앞 line에 보이지 않는 buffer의 내용을 삽입
xp - 커서 가 위치한 문자와 다음 문자를 교환
Interactive edit : (search and replace)
/pattern - find pattern to be replaced (as above)
cw - use a replacement Command (cw, dw, r, s, etc.)
n - find next occurrence of 'pattern'
- repeat command
* 앞의 내용 참고
Global replacement :
:1,$s/string1/string2/g
1 line부터 끝까지 string1 를 string2 로 대치
e.g., :1,$s/sun/SUN/g
Global delete :
:g/pattern/d
1 line부터 끝까지 pattern 을 제거
e.g., :g/###/d (to delete lines inserted by cc file.c | & error-v)
Reading in files :
:r file2 - 커서가 위치한 다음 line에 file2를 삽입
Editing between files : (not needed for SUN system users)
:w - 다른 화일을 읽기 전에 현재의 화일을 저장 (file1)
:e file2 - 두번째 file을 edit하기 위해 load (file2)
:w - 두번째 화일을 저장 (file2)
:e # - original file 을 수정하기 위해 load (file1)
example :w /* file1을 빠져 나가기 전에 저장*/
:e file2 /* file2 load */
"x4Y /* buffer 'x'에 file2의 top 4 line을 저장 */
:e # /* file1 을 load (no changes) */
"xP /* buffer 'x'에 저장되어 있는 내용을 put */
Miscellancenous commands :
:! cmd - editor안에서 shell command를 수행하고자 할 때
~ - (tilde or 'wavy'), 대문자를 소문자로 소문자를 대문자로 교환
% - 한 line안에서 (,),{,},[,]를 검색
mx - 문자 x에 현재 위치를 표시
d'x - 문자 x에 표시된 위치부터 현재 커서 위치까지 삭제
^V - allows for insertion of control characters (e.g., ^L)
?string - scan (/) backward for 'pattern'
:n,m w file - n line에서 m line까지 내용을 file 이라는 이름으로
(e.g., 15,25 w file)
J - JOINS, 커서가 있는 line과 다음 line을 join
:set ai - editor 가 자동적으로 insert tabs을 삽입
:set list - special characters 를 보여줌
(i.e., non-printable characters)
:set nows - stop wraparound search
:set ts=n - set tab stops to be other than the default (8)
:set wm=n - set wrap margin (automatic carriage return insert at n)
example : setenv EXINIT 'set ai wm=8 ts=4|map F W|map @ :w^M:e#^M'
좀 복잡한가요?
유닉스란 원래 처음엔 복잡하지만..나중엔 정말편리한 운영체제라고 하더군요.
그럼 즐거운 통신이 되시길....
vi사용법이 너무 어려우시다면 ... 이 글을 참고로 하십시오. 하이텔에서 퍼온것 임을 밝혀둡니다.
********************************
화면 편집기 vi 사용법(1)
********************************
vi는 정교한 대화식 편집기로서 화면상에서 사용자가 원하는 부분으로 커서를 이동하여 편집할 수 있는 편집기입니다.
vi는 사용하기 전에 단말기의 유형을 알아야 하는데 이는 셀 변수인 TERM에 문자열로 지정되어 있습니다.
1. 동작 모드
vi는 기본적으로 명령 모드와 텍스트 입력 모드의 두 가지가 있습니다.
- 명령 모드에 들어 가면 키보드를 통해서 입력되는 문자는 명령어로 해석됩니다.
다음페이지(엔터) 연속출력(NS) 기타(Z) > NS
- 텍스트 입력 모드에서는 문장을 편집할 수 있습니다.
2. 명령 모드
2.1 문서 저장과 vi 빠져 나가기
:! <셀 명령> 잠시 셀 명령을 수행한다.
예) :!dir dir명령을 수행한다.
:!셀로 빠져나간다. 되돌아 오려면 Ctrl-d를 누른다.
:e <파일이름> 원하는 파일을 불러 들인다.
:w 현재 버퍼로 읽어들여 편집하고 있는 파일을 저장한다.
:q vi 에디터를 끝내고 빠져나간다.
:wq 편집하던 내용을 저장하고 에디터를 빠져 나간다.
:q! 편집하던 내용을 저장하지 않고 빠져 나간다.
:ZZ 편집하던 내용을 파일로 저장하고 빠져 나간다.
2.2 명령 모드에서 커서 위치를 움직이는 키
h 커서를 한 칸 왼쪽으로 이동
j커서를 한 줄 아래로 이동
k커서를 한 줄 위쪽으로 이동
l커서를 한 칸 오른쪽으로 이동
e커서 위치부터 현재 낱말의 끝자로 이동
w커서 위치부터 다음 낱말의 첫 문자로 커서를 이동
b커서 위치부터 바로 이전 단어의 시작 부분으로 이동
7j7개의 행만큼 아래 방향으로 커서가 이동
3w3 낱말만큼 앞 방향으로 이동
^행의 처음으로 이동
$행의 끝부분으로 이동
현재 윈도우의 처음, 중간, 마지막으로 커서를
이동시키는 명령어
H현재 화면의 첫번째 행으로 이동
M현재 화면의 중간 행으로 이동
L현재 화면의 마지막 행으로 이동
커서를 버퍼의 지정된 행으로 이동시키기 위해
G 명령을 사용한다.
1G커서를 버퍼의 첫번째 행으로 이동
nG버퍼의 n번째 행으로 이동
G버퍼의 마지막 행으로 이동
또 다른 커서 이동 방법으로서 패턴 검색을 사용할 수 있다.
/패턴현재의 커서 위치에서 순방향으로 검색하여 첫번째 발견되는 패턴 문자열의 처음에 커서를 위치 시킴
/같은 패턴을 계속 찾고자 할 때 사용
?패턴'?' 기호 뒤에 지정한 문자열을 커서가 있는 위치에서 역방향으로 검색함
?같은 패턴을 역방향으로 계속 찾고자 할 때 사용
문장, 절 단위의 이동
)다음의 문장으로 이동
(이전의 문장으로 이동
}다음 절(Paragraph)의 처음으로 이동
{이전의 절로 이동
]다음 section/function으로 이동
[이전의 section/function으로 이동
화면의 제어
Ctrl-f(forward) 화면 전체를 아래로 이동
Ctrl-b(backward) 화면 전체를 위로 이동
Ctrl-d(down) 화면의 반을 아래로 이동
Ctrl-u (up) 화면의 반을 위로 이동
Ctrl-g 커서가 몇 번째 줄에 있는지 알려줌
********************************
화면 편집기 vi 사용법(2)
********************************
2.3 텍스트 입력 모드로 들어가는 명령어
*텍스트 입력모드에서 명령 모드로 돌아가려면 ESC를 누르면 됩니다.
a현재의 커서 위치로부터 문장을 입력할 수 있게 하여 주는 명령
A현재 행의 마지막에 문장을 입력
i현재 커서 위치 앞에 새로운 내용을 첨가
I현재 행의 처음에 문장을 입력
o커서가 있는 행 아래에 새로운 행을 열고 문장을 입력
O커서가 있는 행 위에 새로운 행을 열고 문장을 입력
2.4 명령모드에서 사용되는 삭제 명령어
x커서 위치에 있는 한 글자를 지운다.
nx커서의 현재 위치에서 오른쪽으로 n개의 문자를 삭제
X현재 커서의 앞 문자를 삭제
nX커서의 현재 위치에서 왼쪽으로 n개의 문자를 삭제
d커서 위치부터 시작하여 지정하는 만큼 지운다.
db커서의 현재 위치에서 왼쪽 방향으로 한 단어를 삭제
dw단어 하나를 삭제
dd한 줄 전체를 삭제
ndd현재의 행에서 아래 방향으로 n개의 줄을 삭제
d$, D현재 커서 위치에서 그 행의 끝까지 삭제
(활용예)
d)커서 위치부터 문장의 뒷부분을 삭제
d}커서 위치부터 문단의 뒷부분을 삭제
cw커서 위치부터 하나의 단어를 새로운 단어로 바꿈
c)커서 위치부터 하나의 문장을 새로운 내용으로 바꿈
2.5 명령의 취소 및 반복
u(undo)바로 이전에 실행한 명령을 취소
U현재 행에서 사용한 모든 명령을 취소
.바로 이전의 명령어를 반복
J행의 결합
2.6 복사 명령
c커서 위치부터 지정한 만큼 지우고 다른 내용으로 바꾼다.
예) cw단어 하나를 지우고 다른 내용으로 대체
y지정한 내용을 복사하여 버퍼에 저장
1에서 9까지의 버퍼는 이전 아홉 단계에서 사용한 d, y 명령의 내용이 차례로 들어있고, a에서 z까지의 버퍼에는 사용자가 지정한 내용을 저장할 수 있다.
큰따옴표(")는 그 다음에 오는 글자가 버퍼의 이름임을 나타낸다.
예) "cy 커서가 있는 위치부터 행 끝까지의 내용을 버퍼 c에 복사해 넣는다.
p버퍼에 들어있는 내용을 커서위치 바로 뒤에 삽입
예) "cp 버퍼 c에 들어있는 내용을 복사
Pp명령과 같으나 커서위치 바로 앞에 내용을 삽입
2.7 스크린 상태 조정 옵션
:set nu행번호를 보여준다.
:set wm=k오른쪽으로 k글자만큼의 여백을 설정한다
set redraw현재 화면 상태를 다시 그린다.