[리눅스 일반] Vi 편집기

vi는 리눅스에서 가장 많이 사용하는 텍스트 기반 편집기이다. vi 편집기의 다양한 기능을 익히면 그 어떠한 편집기보다 편리한 문서편집 업무가 가능하다.

vi는 보통 vim(vi improved)로 알리아스되어 있어 vi를 실행하면 대부분의 배포판에서는 vim이 자동으로 실행된다.

vim-editor_logo-150x150

우선 리눅스 로그인시 환영메시지인 /etc/issue 파일을 열어보자.

이처럼 vi 에디터로 문서를 열때는 “vi 파일명”과 같이 실행하면 열고자 하는 파일이 열린다.
또한, 파일을 닫을 때는 아래와 같이 입력하며, 뒤에 언급하겠지만 “:”, “/”, “?” 등을 입력하여 명령어를 입력 가능한 상태를 실행모드라고 한다.

명령 설명
:q 작성 중인 문서 종료
:q! 작성 중인 문서를 저장하지 않고 종료
:w 작성 중인 문서 저장
:wq 작성 중인 문서를 저장한 후 종료입력(편집)모드

 

1.  입력/편집 모드

vi는 명령모드 상태에서 시작되며, “i” 키를 입력하면 “–INSERT–“가 창아래 보이며, 이때 부터가 입력모드이다. 입력모드에서 명령모드로 되돌아올때는 “ESC” 키를 누르면 된다.

입력모드로 전환하는 키는 여러가지가 있지만, 우리는 적어도 이정도만 알아두자.

명령 설명
i 현재 커서 위치에서 입력모드 전환
a 현재 커서 한 칸 오른쪽에서 입력모드 전환
A 현재 행의 가장 뒤에서 입력모드 전환

 

2. 명령모드

명령모드는 vi가 시작한 상태. 즉, 입력/편집모드가 아닌 상태가 명령모드이다.

1) 실행 취소 / 재실행

명령 설명
u 실행한 작업을 취소
redo 취소한 작업을 실행

2) 이동 관련 키

커서의 이동은 원래 k, h, i, j로 이동된다. 일부 유닉스시스템에서는 방향키가 작동하지 않지만, 우리는 그냥 방향키와 “Home”, “End”, “Pg Up”, “Pg Dn”을 이용하자. 숙지해야할게 너무 많으면 재미없으니까~ ^^

하지만, 편리한 몇가지는 알아두자.

명령 설명
행번호g 지정한 행으로 커서를 이동
gg 문서의 첫 행으로 커서를 이동
G 문서의 마지막 행으로 커서를 이동

3) 영역 지정(블럭 지정)

영역을 지정하여 복사/삭제 등을 할 때 사용하며, 윈도우에서 마우스를 드레그하여 블록을 설정하는 것과 같다.

명령 설명
v 문자 단위로 영역을 지정
V 행(줄) 단위로 영역을 지정

4) 복사/삭제/붙여넣기

복사/삭제 기능을 이동키와 같이 사용하거나 영역을 지정하여 사용한다. “c”나 “cc”도 있지만 패쓰~

명령 설명
d 삭제. 다른 키와 조합하여 사용
dd 행 전체 삭제
y 텍스트 복사. 다른키와 조합하여 사용
p 복사나 삭제된 내용 붙여넣기
x 현재 커서에서 문자 하나 삭제

5) 기타 알아두면 유용한 편집기능

명령 설명
~ 대소문자 전환
. 마지막 실행한 명령을 반복 실행

 

3. 찾기과 검색하여 바꾸기

1) 검색

명령 설명
/검색어 검색어를 문서에서 찾아 표시
n 검색한 내용 아래로 내려가며 표시
N 검색한 내용을 위로 올라가며 표시

2) 검색하여 바꾸기

쉘스크립트나 설정파일을 편집할 때 자주 사용되며, 아주 빠르고 편리한 기능이다.

명령 설명
:%s/찾을내용/바꿀내용/g 문서 전체에서 찾은 모든 내용을 바꿀 내용으로 바꾼다.
:%s/찾을내용/바꿀내용/gc 문서 전체에서 찾은 내용을 하나씩 확인하여 바꾼다.

 

3. 실행모드

명령모드에서 “:”, “/”, “?” 등을 입력하면 실행모드가 되며, 앞서 언급한 바와 같이 “q”, “q!”, “w”, “wq” 등의 명령어로 실행모드에서 명령모드로 다시 나올 수 있다.

아래의 명령어들은 앞으로 자주 사용하게 될 것이며, 알아두면 유용하다.

명령 설명
:w 파일명 지정한 파일명으로 저장
:w >> 파일명 지정한 파일명에 덧붙여서 저장
:sp 수평으로 화면 분할(화면간 이동은 w 키로 이동한다.)
:e 파일명 지정한 파일명의 파일을 불러온다.
:set number line number를 표시하여 준다.
:se ai 자동 줄맞춤

끝으로, 여기에서 언급되지 않았지만 많은 기능들이 있으므로 man 페이지를 활용하여 자신에게 유용한 기능들은 숙지하기 바란다.

 

[참고자료]
1. https://linuxconfig.org/vim-tutorial
2. 유닉스 리눅스 명령어 사전 (한빛미디어)


답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.