2024-03-27 03:02:51
728x90
728x90

1. 모드

1.1 명령 모드

- vi 실행

" vi 파일명 "을 하면 새로운 문서를 편집할 수 있는 환경이 만들어진다.
ex) vi khb.txt

- vi 시작

위와 같이 vi를 실행했다면, vi가 시작되는 첫 모드가 명령 모드이다.

 

1.2. 입력 모드

1.2.1 명령 모드에서 i or a 키를 눌러 입력 모드로 들어가게 된다.

1.2.2. 입력 모드에서는 자유롭게 코드나 글을 작성할 수 있다.

           - ESC : 명령 모드로 돌아감

           - i : 커서가 현재 위치한 부분에서부터 시작

           - a : 커서 바로 다음 부분부터 시작

           - shift+spacebar : 영/한 변환

 

1.3. 콜론 모드

- 명령 모드에서 : (콜론) 을 입력하면 콜론 모드로 들어가게 된다.

- 콜론 모드 맨 아랫줄에 입력 가능한 공간이 있는데, 여기에 명령어를 입력함으로써 vi를 저장 및 종료할 수 있다.

 

출처 : https://velog.io/@gayeong39/Linux-Vi-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4

 

2. vi 명령어

2.1 입력 모드로 전환

i : 커서 앞(왼쪽)부터 입력
a : 커서 다음(오른쪽)부터 입력

2.2 명령 모드로 전환

ESC : 입력 모드 -> 명령모드 / 콜론 모드 -> 명령 모드

2.3. 저장/종료

:q   : 종료 (저장할 것이 있으면 확인 문구가 나옴)
:q!  : 저장하지 않고 강제로 종료
:w   : 저장
:wq  : 저장 후 종료
ZZ   : 저장 후 종료(:wq와 동일)
:wq 파일 이름 : 저장 후 파일 이름 지정

=> vi 편집기에서는 비정상 종료를 하면 .swp 파일이 생기는데, 필요하지 않을 경우 따로 삭제작업 필요.

2.4. 삭제

x      : 커서에 있는 글자 삭제
X      : 커서 앞에 있는 글자 삭제
dw     : 커서를 기준으로 뒤에 있는 단어 글자 삭제 (커서 포함)
db     : 커서를 기준으로 앞에 있는 단어 글자 삭제
dd     : 커서가 있는 라인(줄) 삭제
D      : 커서 위치로부터 행의 끝까지 삭제
:5,10d : 5~10번째 행 삭제
=> dw, db, dd 명령 앞에 삭제할 숫자를 지정
 ex)
    + 3dw : 커서 뒤에 있는 단어 글자 3개 삭제
    + 2db : 커서 앞에 있는 단어 글자 2개 삭제
    + 5dd : 커서가 있는 줄부터 5줄 삭제
=> 삭제 된 내용은 버퍼에 저장되어 붙여넣기가 가능

2.5. 커서 이동

h, j, k, l : 좌,하,상,우 커서 이동 (방향 키가 없는 키보드에서 사용)
w          : 다음 단어의 첫 글자로 이동
b 		   : 이전 단어의 첫 글자로 이동
G		   : 마지막 행으로 가기
:숫자       : 지정한 숫자 행으로 이동 ex) :5

2.6. 복사/붙여넣기

/* 복사 */
yw : 커서를 기준으로 뒤에 있는 단어 글자 복사 (커서 포함)
yb : 커서를 기준으로 앞에 있는 단어 글자 복사
yy : 커서가 있는 라인(줄) 복사
=> yw, yb, yy 명령 앞에 복사할 숫자를 지정 가능 
  ex) 
  	+ 3yw : 커서 기준으로 현재 단어부터 뒤로 3개의 단어 복사
  	+ 2yb : 커서 기준으로 앞에 있는 2개의 단어 복사
  	+ 4yy : 현재 커서가 위치한 행으로부터 4행을 복사
    
/* 붙여넣기 : 복사한 내용, 삭제한 내용을 붙여넣음 */
p(소문자) : 커서 다음에 붙여넣기
P(대문자) : 커서 이전에 붙여넣기

2.7. 찾기

/문자열 : 앞에서 부터 문자열을 찾음
?문자열 : 뒤에서 부터 문자열을 찾음
n : 뒤로 검색
N : 앞으로 검색

2.8. 바꾸기

:%s/exist/new: 각 행의 처음 나오는 exist를 찾아 new로 바꿈
:%s/exist/new/g: 모든 exist를 찾아 new로 바꿈
:%s/exist/new/gc: 모든 exist를 찾아 new로 바꾸기 전에 물어봄

2.9. 되돌리기/재실행

u : 이전으로 되돌리기 (Undo)
Ctrl + r : 되돌리기한 것을 다시 실행 (Redo)

2.10. 행번호

:set number: 행번호를 출력 (간단하게 :se nu)
:set nonumber: 행번호를 숨김 (간단하게 :se nonu)

2.11. 경로

:cd: 현재 디렉토리를 출력

2.12. 줄 맞춤 확인

:se list : 줄 맞춤 확인 출력
:se nolist : 줄 맞춤 확인 숨김

 

출처 : https://velog.io/@gayeong39/Linux-Vi-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4

728x90