기록하는 중/UNIX

[Unix] vi로 편집

성장하는 요롱이 2023. 11. 26. 05:14
텍스트 입력

1. 초기 명령에서 입력 모드로 이동 후 입력이 가능함

2. 입력 모드일 때는 화면 하단에 '--끼워넣기--'가 표시

3. 입력 모드에서 esc를 누르면 명령 모드로 돌아감

명령 키 설명
a 현재 커서 위치의 오른쪽부터 텍스트를 추가(add)할 수 있음
A 현재 라인의 끝에 텍스트를 추가할 수 있음
i 현재 커서의 위치부터 텍스트를 삽입(insert)할 수 있음
l 현재 라인의 처음에 텍스트를 삽입할 수 있음
o 현재 라인의 아래에 라인이 열리고 텍스트를 추가 할 수 있음
O 현재 라인의 위에 라인이 열리고 텍스트를 추가 할 수 있음

 

 

커서 이동 명령

 

1. 명령 모드에서 화살표 키와 PgUp, PgDn키를 사용할 수 있음

2. 그 외 다양한 키

명령 키 설명
h  j  k  l  ←  ↓   ↑   
Ctrl + f /Ctrl + b page up / page down
w 다른 단어의 첫 자로 이동
b 앞 단어의 첫 자로 이동
o 현재 라인의 첫 칸으로 이동
$ 현재 라인의 마지막 칸으로 이동
10G 10번째 라인으로 이동
G 마지막 라인으로 이동
5j 현재 라인에서 아래로  5라인을 이동

 

 

텍스트 삭제 명령

 

1. 명령 모드에서 텍스트를 삭제하거나 변경함

 - 커서를 적당한 위치로 옮긴 후 삭제함

명령 키  설명
x  커서 위치의 한 문자를 삭제
dw  커서의 위치부터 다음 단어 전까지 삭제
d$ 또는 D  커서의 위치부터 현재 라인의 끝까지 삭제
d0  커서의 왼쪽부터 현재 라인의 처음까지 삭제
dd  현재 라인을 삭제
dG  현재 라인부터 파일의 끝까지 삭제
d20G  현재 라인부터 라인 번호 20까지 삭제
5dw  커서의 위치부터 다섯 단어를 삭제
5dd  현재 라인부터 다섯 라인을 삭제

 

 

 텍스트 변경(또는 치환) 명령

 1. 일정 부분의 텍스트를 삭제하고 입력 모드로 전환 됨

 2. 삭제, 변경 또는 붙여 넣기를 한 후 커서를 이동하고 도트(.)명령을 수행하면 앞서 수행한 작업을 반복할 수 있음

명령 키 설명
r 커서 위치의 한 문자를 대치
R 커서의 위치부터 계속 대치 할 수 있음. 입력 모드로 전환 됨(수정 모드)
s 또는 cl  커서 위치의 문자가 삭제되고 입력 모드로 전환됨(삽입)
S 또는 cc  현재 라인에 존재하는 문자가 삭제되고 현재 라인에서 입력 모드로 전환됨
cw  커서 위치부터 단어의 끝까지 삭제되고 입력모드로 전환됨
cb  커서 왼쪽부터 단어의 앞까지 삭제되고 입력모드로 전환됨
c)  커서 위치부터 문장의 끝까지 삭제되고 입력모드로 전환됨
c}  커서 위치부터 문단의 끝까지 삭제되고 입력모드로 전환됨

 

 

텍스트 복사

 

1. 삭제나 변경을 위한 명령 키를 사용할 때 텍스트가 복사됨

2. 커서를 적당한 위치로 이동한 후 y 명령을 사용하여 복사함 

 

텍스트 붙여 넣기

 

1. p 또는 p 명령을 이용하여

 (커서의 왼쪽/위라인) 또는 (오른 편/아래 라인)에 붙여넣기를 할 수 있음

명령 키 설명
yy  현재 라인을 복사
5yy  현재 라인부터 다섯 라인을 복사
yw  커서의 위치부터 다음 단어의 앞까지 복사
y$  커서의 위치부터 라인의 끝까지 복사
y0  커서 왼쪽부터 라인의 앞까지 복사
y^  위와 같으나 라인 앞의 빈칸은 복사하지 않음
yG  현재 라인부터 파일의 끝까지 복사
y)  커서의 위치부터 한 문장을 복사
y}  커서의 위치부터 한 문단을 복사

 

 블록 지정하기

 

1. v 또는 V 명령을 사용하여 문자 또는 라인 단위로 지정함

 -  블록을 지정하고 싶은 곳에 커서를 이동하고 화살표를 사용하여 블록을 지정하고 삭제(x) 또는 복사 (y) 함

 -  커서를 이동한 후 p 또는 P 명령을 사용하여 붙여 넣기를 할 수 있음

명령 키 설명
v 비주얼 모드에서 한번에 한 문자씩 선택
V 비주얼 모드에서 한번에 한 라인씩 선택

 

 

 명령의 취소와 기타 명령

1. 명령 모드에서 다음과 같은 명령을 수행 할 수 있음

명령 키 설명
 이전 변경 작업을 취소(undo)
Ctrl + r  앞서 취소했던 작업을 다시 하는 것으로 취소를 취소
:el  마지막으로 저장한 후의 작업을 취소하고 다시 작업
:n  n번째 라인으로 이동
J 또는 :j  현재 라인과 아래 라인을 합침
:lcommand  vi를 사용하다 쉘 명령 command를 수행
:sh  vi 를 잠시 빠져나가 쉘 명령을 수행함. 쉘 명령으로 exit을 실행하면 다시 vi로 돌아옴
:se nu  화면 좌측에 라인 번호를 표시
Ctrl + g  화면 하다넹 파일의 이름, 전체 라인 수, 현재 라인의 상대적 위치를 퍼센티지로 표시
:r filename  지정된 파일의 내용을 읽어 현재 커서의 아래 줄에 추가

 

검색 명령 - 1

 

1. 한 라인에서 검색할 때 명령 모드에서 f를 사용

 - 예를 들어 fa 명령은 커서 다음 위치부터 a를 찾음

 - 세미콜론(;)을 사용하여 검색을 반복

2. 파일 전체를 대상으로 검색할 때 다음 명령을 사용

명령 키 설명
/pattern 순방향으로 pattern을 검색하여 커서를 이동
/pattern/+num pattern을 검색하고 그 뒤(+) num번째 라인으로 이동
?pattern 역방향으로 pattern을 검색하여 커서를 이동
?pattern?-num pattern을 검색하고 그 앞(-) num번째 라인으로 이동
n 이전 검색을 같은 방향으로 반복
N 이전 검색을 반대 방향으로 반복

 

검색 명령 - 2
명령 키 설명
/hello  순방향으로 단어 hello를 검색하여 커서를 이동
?goodbye 역방향으로 단어 goodbye를 검색하여 커서를 이동
/The.*does 단어 The를 포함하고 그 이후에 단어 does를 포함하는 라인을 검색함
점(.) : 임의의 한 문자와 매칭
애스터리스크(*) : 앞 문자(여기서는 임의의 한 문자)가 0개 이상 나타날 수 있음을 의미
?[pP]rint 단어 print 나 Print를 역방향으로 검색함 
[]는 안에 포함하는 문자 중 하나와 매칭됨

 

검색과 대치

1. 문자열을 검색하여 대치하는 기능

[g][address]s/pattern/replacement[/option]

 -  [g][address] : 검색범위로, % 는 전체  

                        ex ) /pine/ : 커서 다음에 나오는 pine을 포함하는 한 라인 

                               g/pine/ : pine을 포함하는 모든 라인을 대상으로 함 

 - s : pattern을 찾아 replacement로 대치하라는 연산

 - 마지막 옵션이 생략되면 검색된 라인에서 첫 번째 패턴만 대치하며, /g가 사용되면 모든 패턴을 대치

명령 키 설명
;/s/pattern/replacement  커서가 위치한 라인에서 첫 번째 등장하는 pattern을 replacement로 대치
:/%s/pattern/replacement  전체 범위의 라인에서 위와 같은 것을 수행. % 대신에 1,$를 넣어도 됨
:%s/pattern/replacement/g  위와 같으나 등장하는 모든 pattern을 대치
:1,10s/pattern/replacement/g  위와 같으나 1 - 10 라인에서 수행 됨