vi editor



1. vi (visual interface) editor #

vi아이는 광범위하게 사용되는 유닉스 기반의 유명한 텍스트 편집기이다. 대부분의 유닉스 시스템 인터페이스 및 다른 텍스트 편집기들과 마찬가지로, vi는 사용자가 시스템을 제어하기 위해 키보드를 사용한다. vi의 간결한 인터페이스는, 프로그래밍 언어를 입력하거나 수정하느라 하루종일 컴퓨터 앞에서 일해야하는 사람들, 특히 프로그래머들에게 매우 인기가 높다. vi는 Emacs가 나오기 전에 개발되었는데, Emacs는 vi의 인기 있는 대안으로서, 더 많은 기능을 가졌으며, 좀더 복잡하고, 속도가 다소 느린 텍스트 편집기이다. vi는 프로그래밍 언어를 입력하고 편집하는데, 그리고 전자우편을 포함해 짧은 글을 쓰는데, 가장 일반적으로 사용된다. vi는 대개 유닉스 시스템의 일부로 따라 나온다. ─ 텀즈

2. 기본적인 조작 및 명령 #

2.1. 대기모드 #

기능 기능
h 왼쪽으로 이동 b 한단어 뒤로 이동
j 아래로 이동 B 특수문자, 기호 제외 한단어 뒤로 이동
k 위로 이동 w 한단어 앞으로 이동
l 오른쪽으로 이동 W 특수문자, 기호 제외 한단어 앞으로 이동
0 라인의 시작으로 이동 G 파일의 마지막 행으로 이동
$ 라인의 끝으로 이동 + 다음 라인의 처음으로 이동
^ 라인의 첫번째 단어로 이동 - 이전 라인의 처음으로 이동
H 화면의 맨위로 이동 ^F 한 화면 앞으로 이동
M 화면의 중간으로 이동 ^D 한 화면의 반만큼 앞으로 이동
L 화면의 끝으로 이동 ^B 한 화면의 뒤로 이동
/ /keyword 검색(정규표현식) ^U 한 화면의 반만큼 뒤로 이동

2.2. 입력/편집 모드 #

기능 기능
i 현재 문자 앞에서부터 입력 dw 한 단어 삭제
I 현재 문장 앞에서부터 입력 dd 한 라인 삭제
a 현재 문자 뒤에서부터 입력 cw 한 단어 바꾸기
A 현재 문장 뒤에서부터 입력 x 한 문자 삭제
o 행의 아래에 입력 v 복사 범위 지정
O 행의 위에 입력 y 문자 복사
r 곂쳐쓰기 p 현재 줄 다음에 버퍼의 내용을 붙임
R 현재문자 이후부터 겹쳐쓰기 P 현재 줄 앞에 버퍼의 내용을 붙임
D 현재문자 이후 모두 삭제 u 취소

2.3. 명령모드 #

기능
:O 문서의 맨 앞으로 이동
:$ 문서의 맨 뒤로 이동
:set number 행에 번호 부여
:set nonumber 행에 부여된 번호 제거
:set (option) 아래 참조
:ZZ or :wq 저장하고 vi 에디터 종료
:w filename 주어진 파일 이름으로 저장
:w! filename 주어진 파일 이름으로 저장/덮어쓰기
:q 저장하지 않고 vi 에디터 종료
:q! 저장하기 않고 vi 에디터 강제종료
:e vi 에디터 종료하지 않고 다른 파일 편집
:e! 편집한 내용 저장하지 않고 최종 저장된 상태로 파일 열기

3. 기타 조작 및 명령 #

3.1. 창 분할 #

ctrl+wf 창을 수평으로 나누고 커서 위치의 파일을 오픈 ctrl+ww 창이동
:sp[lit] 현재 파일을 두 개의 수평 창으로 나눔 ctrl+wv 현재 파일을 두 개의 수직 창으로 나눔
ctrl+wn 분할 새 창 열기 ctrl+we 현재 창에서 다른 파일 읽기
ctrl+wo 현재 창만 남기고 모두 닫기 :clo[se] 현재 창 닫기
:res[ize] N 창의 크기를 N으로 변경(수평 창만 해당)
:res[ize][+-]N 창의 크기를 N만큼 증가(감소)(수평 창만 해당)

3.2. 전체 지우기 #

gg 첫줄으로 이동
dG 현재 줄부터 마지막까지 삭제

4. 옵션 #

/root/.vimrc
set tabstop=2		탭 간격을 2칸으로 지정한다.
set shiftwidth=2	>>나 << 사용시 들여쓰기 간격을 지정한다.
set expandtab		탭 문자를 공백문자로 변환한다.
set softtabstop=2	탭 간격을 공백문자로 변환하면 삭제할 때 탭 간격만큼 삭제하지 않고, 마치 탭 문자를 삭제하는 것처럼 설정하며, 두 칸 단위로 삭제한다.
set visualbell		사용자 실수를 경고할 때 비프음 대신에 화면을 한 번 번쩍이는 비주얼 벨로 경고한다.
set nobackup		백업 파일을 생성하지 않는다.
set cindent		C 언어 스타일의 들여쓰기를 사용한다.
set autoindent		자동 들여쓰기를 사용한다.
set smartindent		좀 더 지능적인 들여쓰기를 사용한다.
set enc=utf-8		편집 인코딩을 utf-8로 지정한다.
set incsearch		키워드를 입력할 때마다 검색하는 점진 검색(incremental search)을 사용한다.
set number		라인 넘버를 사용한다.
set ruler		화면 오른쪽 아래에 라인, 컬럼 수를 표시한다.
syntax on		구문강조 기능을 사용한다.
filetype on 		파일 종류에 따라 구문을 강조한다.
set background=dark	배경색을 어두운 색으로 설정한다.
colorscheme evening	VI 색상 테마를 evening으로 설정한다.
set backspace=eol,start,indent	줄의 끝, 시작, 들여쓰기에서 백스페이스를 사용하면 이전 줄과 연결된다.
set history=1000	VI 편집 기록을 1,000개까지 기억한다.
set hlsearch		검색어 강조 기능을 사용한다.
set ignorecase		검색, 편집, 치환 시에 대소문자를 구분하지 않는다.
set showmatch		(), []에서 닫는 괄호를 입력할 때 일치하는 괄호를 보여준다.
hi MatchParen cterm=none ctermbg=green ctermfg=blue		괄호 하이라이트 색을 변경한다.
set cc=51,81		지정한 컬럼 위치에 라인을 그어준다.
highlight ColorColumn ctermbg=Red guibg=Blue		컬럼 하이라이트 색을 변경한다.
set list		Whitespace를 보여준다.
set nolist		Whitespace를 보여주지 않는다.
map <F5> :w<CR>:!gcc -w %<CR>	간단한 컴파일 단축키
map <F6> :!./a.exe<CR>		실행 단축키
$ wget hyacinth.byus.net/.vimrc
http://hyacinth.byus.net/.vimrc

4.1. vim63 기본 컬러 스킴 #

[hyacinth@power colors]$ ls
README.txt    default.vim  elflord.vim  morning.vim  peachpuff.vim  torte.vim
blue.vim      delek.vim    evening.vim  murphy.vim   ron.vim        zellner.vim
darkblue.vim  desert.vim   koehler.vim  pablo.vim    shine.vim

4.2. 자동완성 #

vim에서 자동완성을 사용하는 방법은 엄청나게 많다.
여기서는 기본 자동완성만을 소개한다.
  • <C-p>, <C-n> 사용 (<C-p>: ctrl + p 를 의미한다. <C-n>: ctrl + n 을 의미한다.)
vim의 기본 자동완성이며, 어떤 플러그인도 없는 기본 vim에서도 사용할 수 있다.

5. 기타 #

5.1. 윈도우용 vim #

5.2. Cygwin + vim #

http://www.cygwin.com
윈도우에서 vi와 gcc를 사용하고 싶다면 Cygwin 도입을 적극 권장.

3~4년 전엔 그렇게 생각했는데 Cygwin은 굉장히 무겁고, 지금에 와선 vi+gcc만 쓰기 위해서 좋은 선택은 아니다. 최근은 Cygwin gcc 대신 MinGW를 사용하고 있다. 참고: EditPlus+MinGW+gcc 컴파일 설정 -- hyacinth 2014-05-24 00:05:06
~
...라고 8년 전엔 생각했는데 WSL이면 윈도 안에서 된다... 세상 참 좋아진다... -_-
> wsl.exe --install -d Ubuntu
$ sudo apt install build-essential -- hyacinth 2022-05-04 16:49:33


이 글에는 0 개의 댓글이 있습니다.