vi의 동작 모드
vi는 명령 모드, 입력 모드, 마지막 행 모드로 구분한다.
명령 모드에서 입력한 키는 커서의 이동이나 텍스트 삭제 같은 명령으로 해석되어 실행
입력 모드에서 입력한 키는 텍스트로 입력
마지막 행(라인) 모드는 커서가 맨 하단으로 이동하여 특별한 명령어를 사용할 수 있게 됨
vi의 명령
기능 | 명령 모드 | 마지막 행 모드 |
입력 모드로 이동 | a, i, o, A, I, O | |
마지막 행 모드로 이동 | :, /, ? | |
커서 이동 | h, j, k, l, H, M, L, $, ^(O), -, +, Enter, w, b, e | |
화면 이동 | ^f, ^b, ^u, ^d, ^y, ^e | |
저장 및 종료 | ZZ | :q, :q!, :w 파일명, :wq, :wq! |
내용 수정 | r, cw(#cw), s(#s), cc, C | |
내용 삭제 | x(#x), dw(#dw), dd(#dd), D | :#d. :<범위>d |
이전 동작 취소 | u, U | |
복사, 붙여넣기 | yy(#yy), p, P | :#y, :<범위>y, :pu, :#pu |
화면 재출력 | ^l(소문자 L) | :e! |
행 이동 | #G, G | :#, :$ |
이전 동작 반복 | . | |
아랫행 이어 붙이기 | J | |
대문자/소문자 바꾸기 | ~ | |
문자열 검색 | /문자열, ?문자열, n, N | |
문자열 바꾸기 | :s/문자열1.문자열2/g :<범위>s/문자열1/문자열2/g :<범위>s/문자열1/문자열2/gc |
|
다른 파일 읽어오기 | :r 파일 | |
다른 파일 편집으로 가기 | :e 파일, :n | |
셸 명령 실행 | :! 셸 명령, :sh |
명령어의 대소문자가 다름에 주의하자
#은 숫자이다.
enter : enter 키
^ : ctrl 키
버퍼 사용
vi에서는 복사하거나 잘라낸 내용을 임시 버퍼에 저장할 수 있다.
이름이 없는 버퍼를 언네임드 버퍼라 하고, 이름이 있는 버퍼를 네임드 버퍼라 한다.
네임드 버퍼는 "+문자 또는 "+숫자의 형태로 사용한다. 숫자를 사용한 버퍼를 숫자 버퍼라고도 한다.
네임드 버퍼 : "a, "b, "c, "d, ..., "z
숫자 버퍼 : "1, "2, ..., "9
vi 환경 설정
vi 환경 설정은 다음 세 가지 방법으로 할 수 있다.
사용자 홈 디렉터리에 .exrc 파일로 저장한다.
환경 변수 EXINIT에 지정한다.
vi의 마지막 행 모드에서 명령으로 실행한다.(vi 종료 시 초기화)
set 명령과 옵션 | 기능 |
set nu | 파일 내용에 각 행에 행 번호를 표시(저장되진 않는다) |
set nonu | 행 번호를 감춘다 |
set list | 눈에 보이지 않는 특수문자 표시(tab : ^I(대문자 i), eol:$ 등) |
set nolist | 특수문자를 감춘다. |
set showmode | 현재 모드를 표시 |
set noshowmode | 현재 모드를 감춘다 |
set | set으로 설정한 모든 vi 환경 설정 값을 출력 |
set all | 모든 vi 환경 변수와 현재 값을 출력 |
'development > Linux' 카테고리의 다른 글
[우분투 리눅스] 파일 시스템과 디스크 관리 (0) | 2022.07.27 |
---|---|
[우분투 리눅스] 프로세스 관리하기 (0) | 2022.07.23 |
[우분투 리눅스] 파일 접근 권한 관리하기 (0) | 2022.07.20 |
[우분투 리눅스] 셸 기초 사용법 (0) | 2022.07.19 |
[우분투 리눅스] 디렉터리와 파일 기초 명령어 (0) | 2022.07.12 |