기본적으로 제공되는 vi편집기는 파일에 데이터를 입력하는 등 편집에 사용된다. vi편집기는 다양한 편집 기능과 명령을 제공하며, 강력한 검색 및 치환기능, 자동 들여쓰기, 줄번호 표시 등의 사용자 정의기능을 갖추고 있다. 초기에는 사용하기 다소 어렵지만 익숙해지면 높은 생산성을 제공하는 강 력한 편집기다.
vi편집기의 3가지 편집모드
- 직접 명령모드 : ‘vi 파일명‘ 명령으로 편집기 접근 시 초기 화면으로 이때 입력되는 모든 문자는 명령으로 해석된다.
a : 현재 커서 위치 다음부터 새로운 문자를 입력
i : 현재 커서 위치 dkvdp 새로운 문자를 입력
o : 현재 커서 위치 다음라인에 새 라인 추가하고 문자를 입력
O : 현재 커서 위치 위 라인에 새 라인 추가하고 문자를 입력
x : 현재 커서 위치 문자 삭제
dd : 현재 커서 위치 라인 삭제
a, i, o, O : 입력 시 데이터 입력모드 진입
- 데이터 명령모드 : 직접 명령모드에서 a, i, o, O 입력하여 진입
데이터 명령모드에서 입력되는 문자는 작업 버퍼에 저장되고 디스크에 저장을 위해 ESC키를 쳐 직접 명령모드로 나간 후 :w!명령으로 저장 - 간접 명령모드 : 직접 명령모드에서 콜론(:)입력하여 마지막줄에 콜론이 찍히며 진입.w! : 저장
q! : 종료
wq! : 기존 존재파일 점검없이 쓰고나옴(입력한 작업버퍼내용 파일로 저장)
vi편집명령
텍스트 입력(입력모드 전환)
i : 현재커서 앞에 문자입력, I : 현재 줄의 앞에 문자입력
a : 현재커서 뒤에 문자입력, A : 현재 줄의 끝에 문자입력
o : 현재 줄의 아래에 입력. O : 현재 줄의 위에 입력
커서 이동
- 글자 단위
h : 한 칸 왼쪽
j : 한 줄 아래
k : 한 줄 위
l : 한 칸 오른쪽 - 단어 단위
b : 이전 단어의 첫 문자로 이동
w : 다음 단어의 첫 문자로 이동
e : 단어의 끝으로 이동, 커서 위치가 단어의 끄,x이라면 다음 단어의 끝으로 이동 - 텍스트 삭제(직접 명령모드)
x : 커서 위치 한 개의 문자 삭제
X : 커서 위치 앞의 한 문자 삭제
d0 : 커서위치 라인의 선두까지 문자 삭제
d$, D : 커서 위치 라인의 마지막까지 모든 문자 삭제
dw : 커서 위치 한 단어 삭제
dd : 커서 위치 한 라인 삭제
D : 커서 위치 줄의 끝까지 삭제
문자열 검색
순방향 : /문자열/, /문자열
역방향 : ?문자열?, ?문자열
복사, 붙이기, 이동
범주명령어설명
복사 | yw | 한 단어 복사하기 |
nyw | 여러 단어 복사하기 | |
yy, Y | 한 줄 복사하기 | |
nyy, nY | 여러 줄 복사하기 | |
-------- | ---------- | ---------------------------------- |
붙이기 | p | 커서 우측/아래 줄에 붙이기 |
텍스트 바꾸기
범주명령어설명
문자 | r | 커서 위치한 곳 문자 한 개를 다른 한 개의 문자로 변경 |
문자 | R | 커서 위치한 곳부터 문자를 입력하면 덮어 씌워지며 ESC 키로 해제 |
단어 | cw | 커서가 위치한 한 단어를 다른 단어로 바꾸는 명령 |
한 줄 내용 | c | 현재 커서 위치한 왼쪽 텍스트는 바꾸지 않고 오른쪽으로만 변경 |
파일 편집 기타 기능들
명령어설명
:r | 현재 파일의 커서 위치 다음에 다른 파일의 내용 삽입 |
:! | 파일 편집 중 vi 상태에서 Linux 명령어 실행 |
:sh | 잠시 쉘 상태로 들어가는 명령, exit에 의해 다시 vi 상태로 돌아감 |
vi환경옵션
vi에디터의 여백, 라인번호, 화면크기, 들여쓰기 등의 사전 설정은 .vimrc에서 옵션을 수정하여 저장 할 수 있다.
옵션의 종류
옵션(약어)기능
set autoindent (set ai) | 자동으로 들여쓰기를 한다. |
set cindent | C 프로그램에서 자동으로 들여쓰기를 한다. |
set smartindent | 향상된 자동 들여쓰기 |
set autowrite (set aw) | 다른 파일로 이동하는 명령 실행 전에 현재 파일 강제 저장 |
set backspace | 1로 설정 시 백스페이스로 문자 삭제 제한, 2로 설정 시 가능하게 지정 |
set backspace=indent, eol, smart | 줄 끝, 시작, 들여쓰기에서 백스페이스 사용 시 이전 줄과 연결 |
set backupext=.bak | 백업 파일 확장자 지정 |
set encoding=cp949 | 확장완성형 한글 인코딩 cp949 사용 |
set history= | 명령어 기록 기억 개수 지정, :후 화살표 키 누르면 이전 명령 보여줌 |
set hlsearch | 문자열 검색할 때 하이라이트 |
'Linux' 카테고리의 다른 글
permission (1) | 2024.10.01 |
---|---|
리눅스 cheatsheet (1) | 2024.10.01 |