2017년 2월 19일 일요일

[Linux] Vim 설정

[펌글]보통 많은 사람들이 Vim 을 그대로 사용하지 않고 여러가지 설정을 해준다. root 계정을 사용하고 있다면 vi /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=euc-kr "인코딩을 한글로 지정합니다. 
set incsearch
"키워드 입력시 검색하는 점진 검색을 사용합니다.  (파이어폭스서 사용)

syntax on "구문 강조기능을 사용합니다
filetype on "파일 종류에 따라 구문을 강조합니다.
set background=dark "배경색을 어두운 색으로 설정합니다.
colorscheme evening "VI 색상 테마를 evening  으로 설정합니다
set backspace=eol,start,indent
"줄의 끝, 시작, 들여쓰기서 백스페이스 사용시 이전 줄과 연결
set history=1000 " VI  편집 기록을 1000개 까지 저장합니다. 
set hlsearch "검색어 강조 기능을 사용합니다. 
set ignorecase "검색, 편집, 치환시 대소문자를 구분하지 않습니다. 
set showmatch "() 과 {} 에서 한 괄호만 입력해도 일치하는 괄호를 보여줍니다

  Vim 을 시작하면 i 를 눌러서 편집모드로 들어갈 수 있고 Esc 나 Ctrl + [ 를 누르면 명령모드로 들어갈 수 있습니다. 명령모드에서는 앞서 말했듯이 저장, 복사, 치환 등의 행동을 할 수 있습니다. 예를들어서 명령모드서 :w 라 치면 이 파일이 저장됩니다. :q 라 치면 종료가 되며 (저장이 되어 있다면), :q! 라 치면 저장의 여부와는 상관 없이 강제 종료됩니다. 아래는 Vim 의 명령어들을 모은 표 입니다. (대부분의 명령어로 모두는 아니다. )

파일 작업시 명령어 
Vim 명령어결과 
:e 파일명새로운 파일을 연다. 커맨드 프롬프트 처럼 Tab 키를 통해 파일이름의 자동 완성 기능을 사용할 수 있다. 
:w 파일명파일을 저장한다. 만약 파일 이름을 지정하지 않는다면 그냥 원래 파일 이름으로 저장이 되고 파일 이름을 지정해 준다면 새로운 파일 이름으로 저장이 된다
:qVim 을 종료한다. 파일을 저장하지 않았자면 종료되지 않는다. 
:q!파일의 저장에 상관없이 종료한다. 
:wq파일을 저장한 후 종료한다. 
:x위의 :wq 와 거의 같지만 여기서 파일이 저장된 이후 기록된 사항이 있으면 저장하지 않고 파일이 저장된 이후 기록된 사항이 있으면 저장하고 종료한다. 
아래의 Vim 명령어는 Visual 모드, 터미널 모드 모두에서 사용 가능합니다. 
Vim 명령어결과
j or 방향키 ↑커서를 한 칸 위로 이동
k or 방향키↓커서를 한 칸 아래로 이동
l or 방향키 →커서를 한 칸 오른쪽으로 이동
h or 방향키 ←커서를 한 칸 왼쪽으로 이동
e단어의 끝으로 이동
E단어의 끝으로 이동
b단어의 첫 부분으로 이동
B단어의 첫 부분으로 이동
0문장의 첫 부분으로 이동
^공백문자가 아닌 문장의 첫 부분으로 이동
$문장의 끝 으로 이동
H화면의 첫번째 라인으로
M화면의 중간 라인으로 이동
L화면의 마지막 라인으로 이동
:nn 번째 라인으로 이동. 예를들어 :10 이면 10 번째 줄로 이동한다.
텍스트의 삽입 몇 편집
Vim 명령어결과
i커서 앞에 쓴다. 
I커서가 가리키는 라인의 앞에 쓴다
a커서 뒤에 추가한다. 
A커서가 가리키는 라인의 맨 뒤에 추가한다. 
o커서가 가리키는 라인 아래에 새 라인을 추가한다. 
O커서가 가리키는 라인 위에 새 줄을 추가한다. 
r한 글자를 바꿔쓴 후 다시 명령모드로 들어간다.
R삽입모드에 들어가지만 글자를 덧쓰면서 이미 쓰여진 글자를 지운다
ESC 삽입/수정 모드에서 빠져나온다. 
텍스트 지우기
Vim 명령어Action
x커서가 가리키는 글자를 지운다
X커서 앞의 글자를 지운다. 
dd or :d현재 커서가 가리키는 라인의 글자를 지운다
비주얼 모드 들어가기
Vim 명령어결과
v단어를 하이라이팅(Highlighting, 블록 설정) 한다. 텍스트를 하이라이팅 하기 위해서 보통의 이동 키를 사용한다. 
V현재 커서가 가리키는 라인을 하이라이팅 한다. 
The ESC key비주얼 모드에서 빠져나와 명령모드로 들어간다. 
블록 텍스트 편집하기 
아래의 명령어는 비주얼 모드에서 텍스트를 블록 설저한 후 명령모드로 들어와 사용할 수 있다. 물론 명령모드에서도 사용할 수 있긴 하다. 
Vim 명령어결과
~글자의 대소문자를 바꾼다 예를들어서 mOvL 은 MoVl 로 바뀐다. 비주얼 모드와 명령모드 둘다 사용할 수 있으며 비주얼 모드에서 블록 처리한 뒤 명령모드로 들어와 ~ 를 누르면 그 블록 설정된 부분의 대소관계가 바뀐다.
> (V)한 칸 오른쪽으로 민다
< (V)한 칸 왼쪽으로 민다.
c (V)블록처리된 텍스트를 바꾼다. 
y (V)블록처리된 텍스트를 복사(yank)한다. 
d (V)블록처리된 텍스트를 잘라내기한다. 
yy or :y or Y커서가 가리키는 라인을 복사한다. 블록 처리할 필요는 엎다. 
dd or :d커서가 가리키는 라인을 삭제한다. 블록 처리할 필요는 없다. 
p복사나 잘라내기 했던 텍스트를 붙여넣기(put) 한다. 
P커서 앞에 잘라내기 했던 텍스트를 붙여 넣는다. 
실행 취소 및 다시 실행
Vim 명령어결과
u실행 취소한다. 
U커서가 가리키고 있던 라인에서 했던 모든 실행들을 취소한다. 
Ctrl + r다시 실행한다. 
Vim 명령어결과
/patternpattern 이란 단어를 검색한다.
n다음 글자를 찾지만 아래방향으로 찾는다. 
N다음 글자를 찾지만 윗 방향으로 찾는다.
치환  (바꾸기) 
Vim 명령어결과
:rs/foo/bar/afoo 를 bar 로 치환환한다. r 은 치환하는 범위를 지정하고 a 는 인자를 지정한다. 아래에 r 과 a 의 종류에 대해 설명되어 있다. 
범위 (r) 의 종류에는
아무것도 쓰지 않을 때범위를 주지 않을 경우 현재 라인에서 치환한다. 
숫자를 쓸 때치환할 라인의 숫자를 쓴다. 
%전체 파일의 모든 라인에 대해 치환한다. 
인자 (a)의 종류에는
g한 라인의 모든 경우를 치환한다. 이 인자를 주지 않을 경우 처음 발견되는 것만을 치환한다.
(이 말은 g 인자를 주지 않고 Hello Hi Hello 에서 Hello bye 로 치환한다면 bye Hi bye  가 아닌 bye Hi Hello 가 된다) 
i검색된 문자들의 대소문자를 무시하고 치환한다. 
(즉, hello 를 hi 로 치환시 Hello, hEllo, HELLO 등과 같은 것들도 치환된다. )
I위 경우를 무시하지 않는다. ( 위 경우서 hello 만 치환된다 )
c모든 치환에 대해 확인한다. 만약 치환할 것이라면 y 를, 치환하지 않을 것이라면 n 을, 이하 모든 부분을 치환할 것이라면 a 를, 치환을 종료하겠다면 q 를 누르면 된다. 
예를들자면... 
:452s/foo/bar/ 452 번째 라인의 첫 번째 foo 를 bar 로 치환한다. 
:s/foo/bar/g현재 라인에 나타나는 모든 foo 를 bar 로 치환한다.
:%s/foo/bar/g전체 파일의 모든 foo 를 bar 로 치환한다. 
:%s/foo/bar/gi위와 같지만 Foo, FOO, FOo, foO 와 같은 것들도 모두 치환된다. 
:%s/foo/bar/gc위위와 같지만 각 치환에 대해 모두 검사를 수행한다.
:%s/foo/bar/c파일의 모든 라인에 대해 각 라인의 첫 번째 foo 만 bar 로 치환하며 각 치환에 대해 검사를 한다. 

---------------------------------------------------------------------------------------------------
출처
http://kevin0960.tistory.com/entry/VIM-Vi-iMproved-%EC%9D%98-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C%20






댓글 없음:

댓글 쓰기