Vi 편집기

기본적으로 제공되는 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