vi
vi의 동작 모드
1. 명령 모드 - 커서 이동, 페이지 이동, 글자 삭제, 줄 삭제 등
2. 입력 모드 - 입력한 내용이 버퍼로 옮겨져 추가, 수정됨
3. 마지막행 모드 - 검색, 저장, 바꾸기, 줄 이동 등
명령 모드 명령어
k : 위
j : 아래
l : 오른쪽
h : 왼쪽
x : 커서 위치의 문자 삭제
X : 커서 바로 앞 글자 삭제
D : 커서 위치부터 줄 끝까지 삭제
u : 방금 수행한 명령 취소
U : 해당 줄의 모든 편집 취소
dd : 커서 위치의 줄 삭제 (버퍼에 잘라내기)
dw : 커서 위치의 단어 삭제
숫자 : 모든 명령어에는 숫자를 붙일 수 있으며, 해당 숫자만큼 명령어 수행 반복 ex) 3x -> 명령어 x를 3번 반복
yw : 현재 커서가 위치한 단어를 복사
yy : 현재 행을 버퍼로 복사
p : 현재 행 다음에 버퍼 내용 삽입
P : 현재 행 위쪽에 버퍼 내용을 삽입
버퍼
vi는 작업 내용을 버퍼에 저장 - 실행 취소 가능
복사하기, 잘라내기에 사용함
ex) "a3yy -> 현재 행부터 아래로 3줄을 a버퍼에 저장
"ap -> a버퍼의 내용을 붙이기
마지막행 모드 명령어
:#y : #으로 지정한 행을 복사 ex) :10y -> 10행을 복사
:<범위> y : 범위로 지정한 행을 복사 ex) :10,20y -> 10~20행 복사
:#d : #으로 지정한 행을 삭제 ex) :10d -> 10행을 삭제
:<범위> d : 범위로 지정한 행을 복사 ex) :10, 20d -> 10~20행 삭제
:pu : 현재 행 다음에 버퍼 내용 붙이기
:#pu : #으로 지정한 행 다음에 버퍼 내용 붙이기 ex) :5pu
마지막 행 모드에서의 범위 지정
1,$ : 처음부터 끝까지
% : 처음부터 끝까지
1,. : 처음부터 현재까지
.,$ : 현재부터 끝까지
.-2 : 현재부터 앞쪽 2번째 줄까지
검색 기능
/문자열 : 현재 위치부터 파일의 아래 방향으로 문자열 탐색
?문자열 : 현재 위치부터 파일의 위 방향으로 문자열 탐색
n : 다음 문자열 탐색 - /문자열은 아래로 이동, ?문자열은 위로 이동
N : n과 역방향으로 문자열 탐색
바꾸기 기능
:s/문자열1/문자열2/ : 커서가 위치한 줄에서만 문자열1을 문자열2로 바꿈
:<범위>s/문자열1/문자열2/ : <범위> 안의 모든 줄에 대해서 각 줄의 첫번째 문자열1을 찾아 문자열2로 바꿈
:<범위>s/문자열1/문자열2/g: <범위> 안의 모든 줄에 대해서 모든 문자열1을 문자열2로 바꿈
:<범위>s/문자열1/문자열2/gc: <범위> 안의 모든 줄에 대해서 모든 문자열1을 문자열2로 바꿀 때 물어봄
'Linux' 카테고리의 다른 글
[리눅스] 유닉스/리눅스 (0) | 2022.10.16 |
---|---|
[리눅스] 시스템 프로그래밍 환경 - gdb 디버거 (0) | 2022.10.16 |
[리눅스] 시스템 프로그래밍 환경 - make (0) | 2022.10.14 |
[리눅스] 시스템 프로그래밍 환경 - gcc 컴파일러 (0) | 2022.10.14 |
[리눅스] 권한 및 쉘 (0) | 2022.10.04 |