Vim 을 셋팅해보자

옛날부터 vim을 사용해보고 싶었지만… 넘나 편리하고 강력한 IDE와 에디터들이 많아서 쓰질 못했다.(절대 내탓 아님)
또 내 주변에 vim보다는 IDE나 에디터들을 사용하는 개발자들이 많아서 필요성을 딱히 못느끼고 있었다.

하지만 vim 으로 개발하는 개발자들을 볼때면 항상

아 나도 언젠간…

이런 생각에 잠기곤 했다.

그러던 중 회사에서 vim 으로 개발하는 개발자분과 페어 프로그래밍을 하게 되었는데 vim 써보는 것을 제안했다.

나는 당연히 수락했고 이제 점점 셋팅을 하면서 익숙해져가는 중이다.

해보자

vim은 시작할 때 home directory에 있는 ~/.vimrc에 있는 설정들을 불러와서 적용한다.

회사에서 셋팅한 것과 인터넷을 보고 참고하여 일단은 대충 셋팅했다.

General Setting

.vimrc description
set history=500 편집한 500줄 까지 기억하자!
let mapleader=”,” leader key, 을 사용.
set ruler 오른쪽 하단에 현재 위치를 표시함.
set showmatch 괄호 위에 커서가 올라가면 매치되는 괄호를 표시.
set number 줄 번호를 표시함.
set relativenumber 줄 번호를 상대적으로 표시함.
syntax on 문법 체크를 하자!
color seti color scheme를 seti로 사용

leader key

vim에서 기본적으로 <leader>를 사용하는데 다른 키와 매핑하여 다른 기능을 사용한다.

편의를 위해서 ,로 바꾸자

Color Schema

http://vimcolors.com/ 에서 다양한 color scheme를 확인할 수 있는데 원래 Atom에서 쓰던 seti를 사용했다.

Search Setting

.vimrc description
set ignorecase 찾을 때 대소문자 구별 안함.
set smartcase 똑똑하게 찾는다는데…
set hlsearch 찾은 결과를 highlight
set smartcase 찾을 때 커서를 옮김.

Indent Setting

.vimrc description
set tabstop=4 Tab을 4개 space로
set shiftwidth=4 Indent를 4개 space로
set softtabstop=4 Tab 키를 눌렀을 때 4개 space로
set expandtab 모든 Tab을 space로 설정
set smarttab 똑똑한 Tab?
set ai Auto Indent
set si Smart Indent

Key Mapping

.vimrc description
nnoremap vi :tabe ~/.vimrc ,vi => .vimrc 편집 탭 띄우기
nnoremap src :source ~/.vimrc ,src => Reload .vimrc
map q :q ,q => 종료
map :w F2 => 저장
map :set nu! relativenumber! F3 => Toggle line number
inoremap jk jk => Escape insert mode

Moving tab Setting

.vimrc description
map j Ctrl+j => 아래쪽 탭으로 이동
map k Ctrl+k => 위쪽 탭으로 이동
map h Ctrl+h => 왼쪽 탭으로 이동
map l Ctrl+l => 오른쪽 탭으로 이동

그래서

최종적으로 다음과 같은 .vimrc를 만들었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" General Setting
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Sets history line
set history=500

" Mapping <leader> => ,
let mapleader=","

" Show current position at bottom-right
set ruler

set lazyredraw

set magic

" Show matching brackets when text indicator is over them
set showmatch

" How many tenths of a second to blink when matching brackets
set mat=2

" Show line number
set number

" Set line number relative
set relativenumber


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Search Setting
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Ignore case when searching
set ignorecase

" Be smart when searching
set smartcase

" Highlight search last result
set hlsearch

" Move cursor when searching
set incsearch


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Color Setting
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Syntax Enable
syntax on

" Use color scheme 'seti'
color seti



""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Indent Setting
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" tab == 4 space
set tabstop=4
set shiftwidth=4
set softtabstop=4

" Using tab like 4 space
set expandtab
set smarttab

" Auto Indent
set ai
" Smart Indent
set si


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Key Mapping
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" ,vi => Show edit tab .vimrc
nnoremap <leader>vi :tabe ~/.vimrc<CR>

" ,src => Reload .vimrc
nnoremap <leader>src :source ~/.vimrc<CR>

" ,q => Quit
map <leader>q <ESC><ESC>:q<CR>

" F2 => Save File
"imap <F2> <ESC><ESC>:w<CR>
map <F2> <ESC><ESC>:w<CR>

" F3 => Toggle line number
map <F3> <ESC>:set nu! relativenumber!<CR>

" jk => esc, Escape insert mode
inoremap jk <ESC>


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Moving tab Setting
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×