~cpp
1.VI(Visual interface Editor)
구 분 내 용
▶파� ��터 파� �용 프로그램� ��터(binary)
�스트 파� �용 프로그램� source data �는 문서화� 파�(ASCII)
▶Editor(unix system) Line editor 줄 단위 편집(ex ed)
Screen editor 문� 단위 편집(vi)
â–¶Vi ì €ìž� vi와 ex는 The University of California, Berkeley California computer Science Division, Department of Electrical Engineering and Computer Scienceì—�서 개발
â–¶Vi 모드 ëª…ë ¹ì–´(편집)모드 ì�¼ë°˜ ë°� 초기 모드로 문서ì�˜ ìˆ˜ì •, 삽입, 대체 등 ëª…ë ¹ 취소 ; <ESC>
ìž…ë ¥ 모드 문서ì�˜ ìž…ë ¥ (a A I ...) 종료 : <ESC>
마지막형 (: / ? !) ì—� 대한 ìž…ë ¥ì�„ ì�½ì–´ 냄 CR(ìº�리지 리턴)ì�€ ìž…ë ¥ ì�½ì–´ 내기 종료 <DEL> ì�¸í„°ëŸ½íЏ ; 종료 취소
â–¶Vi ëª…ë ¹ì–´ 형 ì‹� [from][.][to][ëª…ë ¹ì–´][ëª…ë ¹ì–´ ì�¸ìˆ˜] or [n][ëª…ë ¹ì–´][ëª…ë ¹ì–´ ì�¸ìˆ˜]
앞� 붙는 수치 행/칼럼 번호 (z G | ) 스�롤양 (^D ^U) 반복 효과 (대부분� 경우)
마지막 ëª…ë ¹ë°˜ë³µ 사용 ë�„트 ëª…ë ¹ì–´(.) íƒ�스트변경시(d s c ..) 작업 ë�™ìž‘ 반복
â–¶.exrc 파ì�¼ 설 ì • viê°€ ì‹œìž‘í• ë•Œ ìž�ë�™ì �으로 ì�½ì–´ 들임 viìž…ë ¥ 모드ì—� ì“°ì�´ëŠ” ëª¨ë“ ëª…ë ¹ì–´ì™€ vi환경 ì„¤ì •ì�¸ set ì—� 대한 ì •ë³´ë¥¼ ê°€ì§€ê³ ìžˆë‹¤ 만약 .exrc파ì�¼ì�´ 없으면 ëª¨ë“ setê°’ì�€ default로 ì„¤ì •ë�¨
예 ì œ set wm=3 set sm ## 축약어 사용. ìž…ë ¥ì‹œ bbmì�„ bbmaster@flower.chungnam.ac.kr로 ë°”ë€�다 ab bbm bbmaster@flower.chungnam.ac.kr ## ìŠ¤íŽ ë§� ì²´í�¬ 매í�¬ë¡œ map V :w^M:!spell -x %^M:e!^M^M
주 요용 ì–´ ë²ˆì§€ì§€ì • ëª…ë ¹ vi ëª…ë ¹ì¤‘ì—�서 ì²˜ë¦¬í•´ì•¼í• ëŒ€ìƒ�ì�˜ 종류를 사용ìž�ê°€ ì§€ì •í• ìˆ˜ 있ë�„ë¡� 하는 ëª…ë ¹ì˜ˆ) d ëª…ë ¹ì—�서, dw는 단어 ì‚ì œë¥¼, db는 앞단어ì�˜ ì‚ì œë¥¼ ì�˜ë¯¸í•œë‹¤.
ì œì–´í‚¤ ëª…ë ¹ì—�서 Ctrl키와 다른 키ì�˜ ê²°í•©ì�„ ì§€ì¹í•˜ëŠ” 용어임예) ^u는 Ctrl키를 누른 ìƒ�태ì—�서 u키를 누른다는 것ì�„ ì�˜ë¯¸
모드형 모드형 프로그램ì�´ëž€ 서로다른 기능ì�„ 가진 모드를 ê°€ì§€ê³ ìžˆì–´ë‹¤ì¤‘í™˜ê²½ì�„ ì§€ì›�한다. 예) 모드ì—� ë”°ë�¼ 엔터키ì�˜ ì—í• ë�„ 달ë�¼ì§„다
비모드형 비모드형 프로그램ì�€ 키들ì�„ í•ìƒ� ê°™ì�€ ì�˜ë¯¸ë¡œ 사용한다
쉘스í�¬ë¦½íЏ 파ì�¼ 안ì—� 존재하는 쉘 ëª…ë ¹ì�˜ ì§‘í•©
â–¶File ì¡°ìž‘
구 ë¶„ 명 ë ¹ ì–´ 기 능
파� 조작(↓: CR)
종 료
ZZ (=:wq) 파ì�¼ì�´ ìˆ˜ì •ë�œ 경우는 ê·¸ 파ì�¼ì—� ì“°ê³ ì¢…ë£Œ ìˆ˜ì •ì�´ 없으면 그대로 종료
:w ↓ 변경ë�œ ë‚´ìš©ì�„ ì €ìž¥í•˜ê¸°
:w! ↓ 허가ë�˜ì§€ 않ì�€ 경우ì—� ê°•ì œ ì�¨ë„£ê¸°
:w <file>↓ 파� name� �넣기
:w! <file>↓ 파� name� 겹� �넣기
:q↓ viì¢…ë£Œí•˜ê³ Unix프롬프트로 ì�´ë�™
:q!↓ 파�변경 내용� 무시한채 vi종료 � 시스템으로
편 집
:e <file>↓ 새로운 파�� 편집
:e!↓ 변경ì�„ ì·¨ì†Œí•˜ê³ ìž¬íŽ¸ì§‘
:e+ <file>↓ 최종 행부터 편집 개시
:e +n↓ n 행째부터 편집 개시
:e #↓ ì§�ì „ì—� íŽ¸ì§‘í•˜ê³ ìžˆë�˜ fileì�„ 편집
:e! #↓ 변경 ì �ì�„ ë²„ë¦¬ê³ ì§�ì „ì—� 편집한 fileì�„ 편집
ì¶” ê°€
:r <file> ↓ <file>� 현재� 문서로 read
:r !<ëª…ë ¹ì–´>↓ <ëª…ë ¹ì–´> 실행 결과를 read
:nr <file>↓ n행 아래로 <file>� read
기 타
:sh↓ 쉘� 임시사용 vi로 복귀시(^d, exit 사용)
:!cmd↓ ëª…ë ¹ì–´ cmd를 ì‹¤í–‰í•˜ê³ ë³µê·€
:n args↓ 새로운 ì�¸ìˆ˜ 리스트ì�˜ ì§€ì •
^G 현재� 파�과 행� 표시
:ta tag↓ 커서를 tag� 위치시킴
:f<ESC> 파��?
다중 파�편 집
$vi A B C D 4ê°œì�˜ 파ì�¼(A B C D)ì�„ 순서대로 ìž‘ì—…í• ìˆ˜ 있다
:n 다중화ì�¼ 편집시 ì§€ì •í•œ í™”ì�¼ì¤‘ 현재 파ì�¼ì�˜ 다ì�Œ 파ì�¼ë¡œ ì�´ë�™
파� 복구
$vi -r í™”ì�¼ëª… 시스템ì�´ 불시ì—� 꺼졌거나(ì�¸í„°ëŸ½ ë°œìƒ�시), ì €ìž¥ì�„ 하지 ì•Šê³ ë‚˜ì™”ì�„ 때 파ì�¼ì�˜ 변경 ë‚´ìš©ì�„ 복구함
구 ë¶„ 명 ë ¹ ì–´ 기 능
화면��
줄/행단위
n 현재 행으로부터 n번째 행으로 ��한다
+ (n+) 커서를 다� �행(�는 n행)� 처�으로 ��
- (n-) 커서를 ì�´ì „ ì�¼í–‰(ë˜�는 ní–‰)ì�˜ 처ì�Œìœ¼ë¡œ ì�´ë�™
G 화�� 마지막 행�서 첫번째 문�로 ��
1G 파�� 처� 행� 첫번째 문�로 ��
nG 파�� n번째 행� 첫번째 문�로 ��
H 화면ì�˜ ì œì�¼ìœ„ì�˜ í–‰
L 화면� 마지막 행
M 화면� 중앙 행
CR +와 같�
↓�는 j 다� 행� 같� 칼럼
↑�는 k 앞행� 같� 칼럼
1문�
^ 공백� 아닌 최초 문�
O 행� 시작
$ 행� �
h �는 → 앞 방향
l �는 � 뒤 방향
^H �(백 스페�스 키)와 같�
nl ì§€ì •ë�œ 칼럼으로 n ì�´ë�™
space →(스페�스 바)와 같�
fc (nfc) 다�� 나타나는 문� c로 ��
Fc (nFc) ì�´ì „ì—� 나타나는 문ìž� c로 ì�´ë�™
tc (ntc) 다ì�Œì—� 나타나는 문ìž� c ì�´ì „으로 ì�´ë�™
Tc (nTc) ì�´ì „ì—� 나타나는 문ìž� c ì�´ì „으로 ì�´ë�™
; (n;) 바로 ì „ì—� 검색한 방법과 ê°™ì�€ 방향으로 문ìž� c로 ì�´ë�™
, (n,) 바로 ì „ì—� 검색한 방법과 반대 방향으로 문ìž� c로 ì�´ë�™
단어
w (nw) 다�� 나타나는 단어나 특수 문�� (시작위치)로 ��
W (nW) 다�� 나타나는 단어(앞)� 공백으로 ��
e (ne) 다�� 나타나는 단어나 특수 문�� (�)으로 ��
E (nE) 다�� 나타나는 단어(�)� 공백으로 ��
b (nb) (ì�´ì „)ì—� 나타나는 단어나 특수 문ìž�ì�˜ (시작위치)로 ì�´ë�™
B nB ì�´ì „ì—� 나타나는 단어(앞)ì�˜ 공백으로 ì�´ë�™
문장/섹션/패러그�프
{ or n{ 커서가 있는 패러그�프� 시작 위치로 ��
} or n} ì�¸ì ‘한 ì�´ì „ 패러그ë�¼í”„ì�˜ 시작 위치로 ì�´ë�™
( 커서가 있는 문장� 처�으로 ��
) 커서가 있는 문장� �으로 ��
]] or n]] ì�¸ì ‘한 ì�´ì „ 섹션ì�˜ 시작위치로 ì�´ë�™
[[ or n[[ ì�¸ì ‘한 다ì�Œ 섹션ì�˜ 시작 위치로 ì�´ë�™
화면단위
^F n^F 화면� 앞으로 보내기
^B n^B 화면� 뒤로 보내기
^D n^D 반화면 스�롤 다운
^U n^U 반화면 스�롤 업
^Y n^Y 한 행 뒤로 ��
^E n^E 한 행 앞으로 ��
z 커서를 화면� top으로 ��, 문서가 스�롤�
z. 커서를 화면� 중간으로 ��, 문서가 스�롤�
z- 커서를 화면� bottom으로 ��, 문서가 스�롤�
^L 현화면ì�„ ì§€ìš°ê³ ë‹¤ì‹œ ì¶œë ¥(refresh)
^R ^Lê°€ →keyì—� 있는 경우 화면ì�„ ì†Œê±°í•˜ê³ refesh
구 ë¶„ 명 ë ¹ ì–´ 기 능
삽 입(insert)
a 현 커서 위치 다�부터 추가
i 현 커서 위치부터 삽입 시작
A 현재 줄� 마지막� 추가 시작
I 현재 줄� 처�� 추가 시작
o 현재줄 밑� 한줄 첨가
O 현재줄 위� 한줄 첨가
삽입중 ìˆ˜ì •
^H 최후� 문�를 지움(백 스페�스)
^W 최후� 단어를 지움
erase 사용�� 소거 문�로 ^H와 같다
kill 사용ìž�ì�˜ í–‰ ë§�소 문ìž�. 현 í–‰ì�˜ ìž…ë ¥ì�„ 소거
\ 사용�� 소거 문�나 행 �소 문�를 ESC
ESC 삽입ì�„ ì¢…ë£Œí•˜ê³ ëª…ë ¹ì–´ 모드로 복귀
DEL �터럽트 삽입 모드를 종료
^D 한 문� back tab. autointent� 왼쪽 마진� 리셋
^^D ì¹´ë ›(^)ì—� ì�´ì–´ì„œ control-d(^D)를 누른다.
í–‰ì�˜ ì„ ë‘�ì—� back tab. autointentì�˜ 왼쪽 마진ì�„ 리셋하지 않ì�Œ
O^D í–‰ì�˜ ì„ ë‘�ì—� back tab autointentì�˜ 왼쪽 마진ì�„ 리셋
^V 프리트 �지 않� 문�를 ESC
행� 결합
J ë‘� í–‰ì�„ 결합하여 한 행으로 ë§Œë“ ë‹¤
지우기(delete)
문�
x nx 커서� 위치한 한 문�를 지운다
X nX 커서 ì�´ì „ì�˜ 한 문ìž�를 지운다
D 현재 커서 위치ì—� 있는 í–‰ì�˜ ë��까지 ëª¨ë“ ë¬¸ìž�를 지운다
d0 행� 시작부분�서 현재 커서 위치 앞 문�까지 지운다
줄
dd ndd 현재 행(�는 n행)� 지운다
dG 현재 행으로부터 파ì�¼ì�˜ ë��까지 ëª¨ë“ í–‰ì�„ 지운다
d1G 현재 행으로부터 파ì�¼ì�˜ 처ì�Œ 위치까지 ëª¨ë“ í–‰ì�„ 지운다
dnG 현재 행으로부터,ìƒ�대ì �으로 n번째 행까지 ëª¨ë“ í–‰ì�„ 지운다
d- 현재 줄과 ì�´ì „줄 ì „ë¶€ë¥¼ 지운다
d+ 현재 줄과 다�줄� 지운다
nd- 현재 줄과 ì�´ì „ì�˜ n번째 줄 ì „ë¶€ë¥¼ 지운다
nd+ 현재 줄과 다ì�Œì�˜ n번째 줄 ì „ë¶€ë¥¼ 지운다
ddp 현재 줄과 다� 줄� �환한다
문장/ì ˆ/구
d) dn) 현재 위치�서 다� 문장� �까지 지운다
d( dn( ì�´ì „ 문장ì�˜ 시작 위치ì—�서 커서 ì�´ì „ì�˜ 문ìž�까지 지운다
d} dn} 현재 위치�서 다� paragraph� �까지 지운다
d{ dn{ ì�´ì „ paragraphì�˜ 시작 위치ì—�서 커서 ì�´ì „ì�˜ 문ìž�까지 지운다
d] dn] 현재 위치�서 다� section� �까지 지운다
d[ dn[ ì�´ì „ sectionì�˜ 시작부터 커서 ì�´ì „ì�˜ 문ìž�까지 지운다
ì§€ì •ë²”ìœ„ê¹Œì§€
dfc dnfc 현재 위치�서 순방향으로 첫번째(n번째) 'c'문�까지 지운다
dFc dnFc 현재 위치ì—�서 ì—방향으로 첫번째(n번째) 'c'문ìž�까지 지운다
dtc dntc 현재 커서 ì�´ì „ì—�서 순방향으로 첫번째(n번째) 'c'문ìž�까지 지운다
dTc dnTc 현재 커서 ì�´ì „ì—�서 ì—방향으로 첫 번째(n번째) 'c'문ìž�까지 지운다
d/pat 현재위치ì—�서 순방향으로 íƒ�색하면서 처ì�Œ 만나는 팬턴(pat)ì�´ì „까지
d?pat 현재위치ì—�서 ì—방향으로 íƒ�색하면서 처ì�Œ 만나는 팬턴(pat)까지
text복구
p 버í�¼ì�˜ ë‚´ìš©(change, delete, yank)ì�„ 현재줄 ì�´ì „ì—� 복구한다
P 버�� 내용(change, delete, yank)� 현재줄 다�� 복구한다
문서복구
$vi -r <í™”ì�¼> <í™”ì�¼>ì�€ ë¬¸ì œê°€ ìƒ�ê¸°ê¸°ì „ì�˜ í™”ì�¼ì�´ë¦„ *시스템ì�´ 불시ì—� 꺼졌거나, ì €ìž¥í•˜ì§€ ì•Šê³ ë‚˜ì™”ì�„때*
구 ë¶„ 명 ë ¹ ì–´ 기 능
� 체 단어
cw cnw 현재위치�서부터 현재(n번째 다�)단어� �까지 변경
cW cnW 현재위치�서부터 현재(n번째 다�)단어� �까지 변경
cb cnb 가장 가까운(n번째)ì�´ì „ 단어ì�˜ 시작부터 현재위치 ì�´ì „문ìž� 까지변경
cB cnB 가장 가까운(n번째)ì�´ì „ 단어ì�˜ 시작부터 현재위치 ì�´ì „문ìž� 까지변경
문장/ì ˆ/구
c) cn) 현재 위치�서 다� 문장� �까지 변경
c( cn( ì�´ì „ 문장ì�˜ 시작위치ì—�서 커서 ì�´ì „ì�˜ 문ìž�까지 변경
c} cn} 현재 위치�서 다� paragraph� �까지 변경
c{ cn{ ì�´ì „ paragraphì�˜ 시작위치ì—�서 커서 ì�´ì „ì�˜ 문ìž�까지 변경
c]] cn]] 현재 위치�서 다� section� �까지 변경
c[[ cn[[ ì�´ì „ sectionì�˜ 시작부터 커서 ì�´ì „ì�˜ 문ìž�까지 변경
íŠ¹ì •ë¬¸ìž�까지
cfc cnfc 현재 위치�서 순방향으로 첫번째(n번째) 'c'문�까지 변경
cFc cnFc 현재 위치ì—�서 ì—방향으로 첫번째(n번째) 'c'문ìž�까지 변경
ctc cntc 현재 커서 ì�´ì „ì—�서 순방향으로 첫번째(n번째) 'c'문ìž�까지 변경
cTc cnTc 현재 커서 ì�´ì „ì—�서 ì—방향으로 첫번째(n번째) 'c'문ìž�까지 변경
검 색
/문�열 문�열� 앞으로 검색
10,20/문�열 10줄�서 20줄까지 문�열 검색
1,$/문�열 처�부터 �까지 문�열 검색
/문�열/+n 순방향으로 검색� 문�열 다�� n번째� 줄로 ��
?문�열 문�열� 뒤로 검색하여 ��
?문ìž�ì—´?+n ì—방향으로 검색ë�œ 문ìž�ì—´ 다ì�Œì�˜ n번째ì�˜ ì „ì¤„ë¡œ ì�´ë�™
n ë°©ê¸ˆì „ì—� 수행한 검색과 ê°™ì�€ 방향으로 검색(/)
N 방금 ì „ì—� 수행한 검색과 반대 으로 검색(?)
콘트롤문�(^)검색하기
:/^M(^V+^M) 컨트롤 문ìž�(^)를 화면ì—� 나타낼 때는 ë¨¼ì € ^V를 누른 다ì�Œ ìž…ë ¥í•˜ê³ ìž� 하는 컨트롤 문ìž�를 눌러야 한다
치 환(replacement) :
[범위]s/old/new/[cgi] 단 ( . , * [ ^ $ \ / &)� �� (\. \* \[ \^ \$ \ \/ \&)로
[범위]
[숫�] 줄 번호
[$] 파�� �
[. ] 현재 위치
[%] 현재화�
[cgi]
[c] 변경시 변경여부를 사용��게 물어 본다
[g] 한 줄ì—� 나타난 ëª¨ë“ ê²ƒì�„ 찾아 변경한다
[i] 검색시 대소 문� 구별하지 않는다
:s/old/new/g
현재� 줄� 대해 수행
:10,$s/old/new/g
10줄�서 파�� �까지 수행
:g/A/s//B/g
ì „ì²´í™”ì�¼ì—�서 A를 찾아(g/A)
A를 B로 치환한다 (s//B), s뒤� //는 text를 다시 쓰지 않아� �게 한다
ì�´ ì—°ì‚°ì�„ 한줄ì—� 반복해서 ì �용한다(/g)
:g/ABC/s/B/Z/g
ì „ì²´í™”ì�¼ì—�서 ABC를 찾아(s/B/Z)
ABC중 B 를 Z로 치환한다 (/g)
ì�´ ì—°ì‚°ì�„ 한줄ì—� 반복해서 ì �용한다(/g)
구 ë¶„ 명 ë ¹ ì–´ 기 능
Mark(마í�¬) 설 ì • mc 현 커서ì�˜ 위치를 'c'로 표시한다 ('c' 는 1문ìž�ì�´ë©° 소문ìž�ì�´ë‹¤)
� � 'c 'c'로 표시� 위치로 ��한다
` 'c'로 표시� 줄� 첫 문�로 ��한다
" ì§€ì •ë�˜ì—ˆê±°ë‚˜, 작업했ë�˜ 바로 ì „ 줄로 ì�´ë�™
`` ì§€ì •ë�˜ì—ˆê±°ë‚˜, 작업했ë�˜ ê·¸ 줄ì�˜ 첫문ìž�로 ì�´ë�™
ë¸”ëŸ ì € 장/첨 ê°€ :10,20w í™”ì�¼ëª… 10줄ì—�서 20줄까지 í™”ì�¼ëª…ì—� ì €ìž¥
:10,20w >> 화�명 10줄�서 20줄까지 화�명� 첨가
삽 입 :10,20r 화�명 10줄�서 20줄까지 화�명�서 �어와서 현재줄� 삽입
ìž�르기(yank) "a5dd 현재 줄ì—�서 부터 5줄ì‚ì œí•˜ê³ , aë�¼ëŠ” 버í�¼ì—� ì €ìž¥í•¨
복 사 yw 한 단어를 버�� 기�시킨다
3yw 3단어를 버�� 기�시킨다
y$ 줄� �까지 버�� 기�시킨다
y) 문�� �까지 버�� 기�시킨다
yy nyy 현재 (n개�)줄� 버�� 기�시킨다 (Y)
"a5Y 현재 줄�서 부터 5줄� a�는 �름으로 버�� 기�
붙히기(put) p 버�� 내용� 현재 커서 위치� 오른쪽� 추가시킨다
P 버�� 내용� 현재 커서 위치� 왼쪽� 추가시킨다
"ap 버�a� 있는 내용� 현재 커서 위치� 왼쪽� 추가시킨다
"np n번 ì „ì—� 사용한 ì‚ì œ ëª…ë ¹ì�´ë‚˜, yankëª…ë ¹ì—� ì�˜í•´ 기ë¡�ë�œ 버í�¼ì�˜ ë‚´ìš©ì�„ ê°€ì§€ê³ ë¶™ì�´ê¸° 수행
매í�¬ë¡œì„¤ì •(반복ë�˜ëŠ” 작업시) ìž‘ 성 :map<키><기능> <키> 는 10ìž� 까지
<기능> � 100� 까지
*주ì�˜) viì�˜ bug로서 í•ìƒ� ëª¨ë“ ëª¨ë“œì—�서 매í�¬ë¡œê°€ ë�™ìž‘하지는 않는다
í•´ ì œ :unmap <키> 매í�¬ë¡œ 해재
사 ìš© :map #n <기능> 만약 <키>ê°€ #n - nì�€ 0ì—�서 9까지ì�˜ 숫ìž� - ì�´ë�¼ë©´, 그것ì�€ ì •í™•í•œ 매í�¬ë¡œ 키로 ì„¤ì •ë� 것ì�´ë‹¤.
:map #2 :w^M 문서를 작성하다가 기능키 F2를 누르면 :w^M� 실행한다
예 ì œ :map V :w^M:!ispell -x $^M:e!^M^M (ì˜�ë¬¸ì² ìž� 검사)
:map #2 :w^M: !cc %^M:e!^M^M (vi�서 기능키 F2로 컴파�)
특수 ëª…ë ¹ . 가장 최근 ëª…ë ¹ 재실행
J �행� 결합
~ 대문� 소문� 변환
^1 화면ì�„ ì†Œê±°í•˜ê³ ìž¬ì¶œë ¥
ëª…ë ¹ì–´ 기 능 ëª…ë ¹ì–´ 기 능 commondëª…ë ¹ì–´ 기 능
: ex모드(편집) ^f 앞 방향으로 한 화면 스�롤 :r <file> <file>� 현재� 문서로 read
) 다ì�Œ sentence G . . .로 ì�´ë�™(dft는 ë��) :r !<ëª…ë ¹ì–´> <ëª…ë ¹ì–´>실행결과를 read
( ì „ sentence ^g 현재줄ì�˜ 위치를 í™”ë©´ì¶œë ¥ :nr <file> n줄로<file>ì�„ read
} 다ì�Œparagraph h 왼쪽으로 한칸 ì�´ë�™ :! 쉘 ëª…ë ¹ì–´ë¥¼ 실행
{ ì „paragraph H 화면ì�˜ 첫번째 줄로 ì�´ë�™ :sh 쉘로 나ê°�
]] 다ì�Œ section ^h 삽입모드ì—�서 backspace :x ì“°ê³ ë‚˜ê°€ê¸°
[[ ì „ section i 현재 위치 ì „ì—� 삽입 :wq ì“°ê³ ë‚˜ê°€ê¸°
0(ì˜�) 현 lineì�˜ 첫번째 문ìž�로 ì�´ë�™ I 줄ì�˜ 첫번째ì—� 삽입 :11,22w <file> 줄 11ê³¼ 12사ì�´ ë‚´ìš© ì €ìž¥
$ 현 lineì�˜ ë��으로 ì�´ë�™ ^i tab (삽입모드ì—�서) :w >> <file> 작업중ì�¸ í™”ì�¼<file>ì—� ì €ìž¥
^ 현 line� 첫번째 문�로 �� j 아래로 �� :w! 작업중� 화� �어쓰기
+ 다�줄� 첫번째 문�로 �� k 위로 �� :q �나기(변화는 �러 메시지)
- ì „ì¤„ì�˜ 첫번째 문ìž�로 ì�´ë�™ l 오른쪽으로 ì�´ë�™ :q! 내용변경과 관계없ì�´ 종료
spacebar 다ì�Œë¬¸ìž� L 화면ì�˜ 마지막 줄로 ì�´ë�™ :e <file> vi를 나가지 ì•Šê³ <file>편집
return 다ì�Œ 줄 ^l refresh :e! 변경ì�„ ì·¨ì†Œí•˜ê³ ìž¬íŽ¸ì§‘
/ 앞 ë°©í–¥ íƒ�색 m 현위치를 ë ˆì§€ìŠ¤í„°ì—� 마í�¬ :n 다ì�Œí™”ì�¼ì�„ 편집
? 뒷 방향 �색 M 화면� 중간으로 �� :n <files> 편집하기 위한 화�� 새로운 리스트로서<file>작성
% 서로 �� �루는 (,{,[,-),},}으로 �� ^m �리지 리턴(CR)
, 마지막f,F,t,Tëª…ë ¹ì�˜ ì—방향으로 실행 n 마지막 검색 다시 수행 :e# ì§�ì „ì—� íŽ¸ì§‘í•˜ê³ ìžˆë�˜ <file>작성
; 마지막f,F,t,Tëª…ë ¹ì�˜ 순방향으로 실행 N 마지막 검색 ì—ë°©í–¥ 수행 :args 편집ë�œ í™”ì�¼ì�„ 보여줌
. 마지막 ëª…ë ¹ì–´ 반복 ^n 아래로 ì�´ë�™(ëª…ë ¹ì–´ 모드) :rew í™”ì�¼ì�˜ 맨 위로
` mark한곳으로 ì�´ë�™ o 현재줄 ë°‘ì—� 한줄 첨가 :map m n 매í�¬ë¡œì„¤ì •
' 마í�¬ê°€ 있는 줄ì�˜ 첫번째로 ì�´ë�™ O 현재줄ì—� 한줄 첨가 :map! m n 매í�¬ë¡œ ì„¤ì •(삽입 모드)
`` ì�´ì „ 마í�¬í•œ ê³³ or íƒ�ìƒ‰í•˜ê¸°ì „ì�˜ 위치 p 현재줄 ë°‘ì—� ë„£ì�Œ :unmap m 매í�¬ë¡œ í•´ì œ
'' ``ì�˜ 줄ì�˜ 처ì�Œ P 현재줄 아래로 ë„£ì�Œ :unmap! m 매í�¬ë¡œ í•´ì œ(삽입모드)
~ 대문ìž�↔소문ìž� 변환 ^p 위로 ì�´ë�™(ëª…ë ¹ì–´ 모드) :ab <1> <2> 약어 ì„¤ì •
" ë ˆì§€ìŠ¤í„° ì €ìž¥ Q ë��ë‚´ê³ ex 실행 :unab <1> 약어 í•´ì œ
!! 마지막 쉘 ëª…ë ¹ì–´ 반복 r 현재 문ìž�를 êµ�ì²´ :set <option> set ì„¤ì •
! send next to commend, replace output(eg !) R 삽입모드가 남�때까지 �체 (즉 ESC를 누를 때까지) :set number ��번호 붙�기
>> 오른쪽으로 shiftwithë§Œí�¼ paragraph ì�´ë�™ ^r refresh(ëª…ë ¹ì–´ 모드) !} 현재 문단ì�„ ì§€ì •ë�œ unix 프로그램으로 연결하여 수행 후 결과를 현재 문단과 êµ�ì²´
<< 왼쪽으로 shiftwith만� paragraph �� s �체
>% 오른쪽으로 (,{,[ì�„ ë§Œë‚ ë•Œ 까지 ì�´ë�™ S ê·¸ í–‰ì�˜ ëª¨ë“ ë¬¸ìž�를 대치
<% 왼쪽으로 (,{,[ì�„ ë§Œë‚ ë•Œ 까지 ì�´ë�™ t 오른쪽으로 ê·¸ 문ìž� 바로 ì „ê¹Œì§€ 커서 ì�´ë�™
a 현재문� 다�부터 삽입 모드 T 왼쪽으로 "
A 현재줄� �� 삽입 ^t 다� shiftwith로 ��
b 한 단어 뒤로 ì�´ë�™ u 마지막 ëª…ë ¹ì�˜ 취소
B 한 공백 구분 단어 뒤로 �� U 현재 줄� 변화를 취소
^b 한 화면 위로 스�롤 ^u 반화면� 위로 스�롤
c ì§€ì •ë�œ ì˜�ì—까지 í…�스트 변경 ^V 다ì�Œ 글ìž� í•´ì„�ì�„ 방해함
C 줄� �까지 �스트 변경 w 한 단어 오른쪽으로 ��
^c 삽입모드 ë��냄(ëª…ë ¹ì–´ x) W 한공백 구분 단어 오른쪽으로
d .ì§€ì •ë�œ ì˜�ì—까지 textì‚ì œ ^w ì „ 단어 시작 위로(삽입모드)
D 줄ì�˜ ë��까지 ì‚ì œ x 현재ì�˜ 문ìž� ì‚ì œ
^d 화면ì�˜ ë°˜ì�„ 아래로 스í�¬ë¡¤ X ì „ 문ìž�ì�˜ ì‚ì œ
e 현재 단어� �으로 �� y . . . 를 yank
E 한 공백 구분 단어 �으로 �� Y 현재줄� yank
^e 한줄 밑으로 화면 스�롤 ^y 한줄위로 화면� 스�롤
f . . . � �색 z 스�린 top위치(. mid -bot)
F . . . ì�„ 뒷방향으로 íƒ�색 ZZ ì €ìž¥í•˜ê³ ë‚˜ê°�(=wq)
set ëª…ë ¹ì–´ 기 능
Option Default
:set <option> <param>
:set <nooption> <param> setëª…ë ¹ì�˜ 취소는 <option>앞ì—� no를 붙힌다
:set all 현재 사용중ì�¸ viì�˜ 옵션 ì§€ì •ìƒ�태ì—� 대한 ëª¨ë“ ê²ƒì�„ ë³¼ 수 있다
autoindent(ai) noai 들여 쓰기 기능 ìž�ë�™ì„¤ì •
autoprint(ap) ap ê°� ëª…ë ¹ 후ì—� 변화를 ìž�ë�™ì �으로 í™”ë©´ì¶œë ¥
autowrite(aw) noaw 여러 파ì�¼íŽ¸ì§‘ì‹œ 다른 파ì�¼ë¡œ ì�´ë�™ì „ì—� ìž�ë�™ì €ìž¥(:n, :!)
beautify(bf) nobf ìž…ë ¥í•˜ëŠ” ë�™ì•ˆ ëª¨ë“ ì œì–´ 문ìž�를 무시 단 tab, newline, formfeed는 ì œì™¸
directory(dir=) /tmp 버í�¼ë¥¼ ì €ìž¥í•˜ê¸° 위한 ë””ë ‰í† ë¦¬ ì�´ë¦„
edcmpatible noedcmpatible ed편집기� 기능사용
errorbells(eb) errorbells �러 발�시 벨울림
exrc(ex) noexrc home ë””ë ‰í† ë¦¬ê°€ 아닌곳ì—� .exrcí™”ì�¼ì¡´ìž¬ ì�¸ì •
hardtaps=(ht=) 8 하드웨어 í…�ì�„ 위한 범위 ì„¤ì •
ignore case(ic) noic 검색�나 �체시 대소문� 무시
lisp nolisp indentation� lisp형�으로 삽입
list nolist ëª¨ë“ íƒ ë¬¸ìž� ëŒ€ì‹ ^I, í–‰ì�˜ ë��ì—� $를 표시
magic magic [*. 등ì�˜ 문ìž�들ì�´ ì •ê·œì‹� 패턴ì—�서 특수한 ì�˜ë¯¸ë¥¼ ê°–ì�Œ
mesg masg 버í�¼ì�˜ 최대 í�¬ê¸°ë¥¼ ì„¤ì •
number(nu) nonumber í„°ë¯¸ë‚ ë¡œ ìž…ë ¥ë�˜ëŠ” 메시지를 가능하게 함
open noopen Vi모드를 ex� 가능하게 함
optimize(opt) optimize
paragraphs=(para=) IPLPPQPPLIbp 문맥ì�„ 위하여 매í�¬ë¡œ ì„¤ì •
prompt prompt exëª…ë ¹ì�˜ prompt ì„¤ì •
readonly(ro) noro ! 부호없는 화� 쓰기 방지
reraw noredraw
remap remap mapë�œ 문ìž�들ì�„ 반복ì �으로 ì �ìš©
report= 5 변경ì�„ 알리기 위한 매í�¬ë¡œ ì œê³µ
scroll 1/2 스í�¬ë¡¤í• í–‰ì�˜ 수를 ì„¤ì •
sections= SHNHH sectionì�„ 위한 매í�¬ë¡œë¥¼ ì �ìš©
shell=(sh=) ì…€ 환경ì�„ ì �ìš©
shiftwith=(sw=) ì§€ì •ë�œ 줄ì�„ 오른쪽 혹ì�€ 왼쪽으로 ì „ì²´ë¥¼ 옮기는 ëª…ë ¹ì„¤ì •
showmatch(sm) {,(등ì�„ 눌린 경우 매ì¹ë�˜ëŠ” },)ì�„ 찾아 1ì´ˆ ë�™ì•ˆ ì¶œë ¥í•˜ê³ ì›�위치로 ë�Œì•„옴
showmode noshowmode ìž…ë ¥ 모드ì—�서 화면ì�˜ 우측하단ì—� "input mode"ì¶œë ¥
slowopen(slow) tabì�„ ëˆŒë €ì�„ 경우 ì�´ë�™í•œ 공간 ì„¤ì •
tabstop(ts=) 다른 화�� tab간격� 다른 경우
taglength(tl=) tab í™”ì�¼ì�˜ 내용중ì—� ì�˜ë¯¸ìžˆëŠ” 문ìž�수를 ê²°ì •
tags= tag /usr/lib/tags íƒœê·¸ëª…ë ¹ì—� 사용ë�˜ëŠ” í™”ì�¼ pass
term= 터미ë„� 형ì‹� ì§€ì •
timeout(to) timeout 간단한 ì—�러 메시지 ì¶œë ¥
tty type= Set 1초 후� 매�로� "time out"� 실행
warn warn 터미ë„� 타입ì�„ ì„¤ì •
window=(w=) 편집ë�œ ë‚´ìš©ì�´ ì €ìž¥ë�˜ì§€ ì•Šê³ ì‰˜ ëª…ë ¹ì�„ ì‚¬ìš©í• ê²½ìš° ê²½ê³ ë©”ì‹œì§€ë¥¼ ì¶œë ¥
wrapmargin=(wm=) 0 화면ìƒ�ì—� 보여줄 í–‰ì�˜ 수를 ì„¤ì •
wrapscan(ws) ws 우측 마진ì�„ ì„¤ì •
writeany(wa) nowa ì–´ë– í•œ í™”ì�¼ì�´ë�¼ë�„ 시스템ì�´ 허용하는 범위내ì—�서 쓰기 가능