본문 바로가기

Work/리눅스

[Linux] .vimrc 설정

  1  scripte utf-8

  2  " vim: set fenc=utf-8 tw=0:

  3  " 파일의 첫부분에 위의 2줄을 꼭 남겨 두십시오.

  4

  5  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

  6  " 인클루드의 Vim 설정 파일

  7  " 마지막 수정: 2005-12-05 19:13:41 KST

  8  " $Id: .vimrc 65 2005-12-05 10:13:55Z barosl $

  9  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 10

 11  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 12  " 프로그램 기본 설정

 13  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 14

 15  " 오리지널 Vi 와의 호환성을 없애고, Vim 만의 기능들을 쓸 수 있게 함.

 16  set nocp

 17

 18  " 모든 옵션을 원래대로 복원

 19  set all&

 20

 21  " 명령어 기록을 남길 갯수 지정

 22  set hi=100

 23

 24  " 백스페이스 사용

 25  set bs=indent,eol,start

 26

 27  " 인코딩 설정

 28  " 문서를 읽을 때 BOM 을 자동으로 제거하려면, fencs 맨 앞에 ucs-bom 를 추가하세요.

 29  "let &tenc=&enc

 30  "set enc=utf-8

 31  set fenc=utf-8

 32  set fencs=utf-8,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le

 33

 34  " 홈 디렉토리가 존재할 때에만 사용할 수 있는 기능들

 35  if exists("$HOME")

 36

 37  " 홈 디렉토리를 구한다.

 38  " 특정 시스템에서는 홈 디렉토리 경로 끝에 / 또는 \ 문자가

 39  " 붙어 있기 때문에, 그것들을 제거한다.

 40      let s:home_dir = $HOME

 41      let s:temp = strpart(s:home_dir,strlen(s:home_dir)-1,1)

 42      if s:temp == "/" || s:temp == "\\"

 43          let s:home_dir = strpart(s:home_dir,0,strlen(s:home_dir)-1)

 44      endif

 45

 46  " 경로 설정

 47  if has("win32")

 48      let s:dir_tmp = s:home_dir."/_vim/tmp"

 49      let s:dir_backup = s:home_dir."/_vim/backup"

 50  else

 51      let s:dir_tmp = s:home_dir."/.vim/tmp"

 52      let s:dir_backup = s:home_dir."/.vim/backup"

 53  endif

 54

 55  " 임시 디렉토리 설정

 56      if isdirectory(s:dir_tmp)

 57          set swf

 58          let &dir = s:dir_tmp

 59      else

 60          set noswf

 61          set dir=.

 62      endif

 63

 64  " 백업 디렉토리 설정

 65      if isdirectory(s:dir_backup)

 66          set bk

 67          let &bdir = s:dir_backup

 68          set bex=.bak

 69      else

 70          set nobk

 71      endif

 72

 73  endif

 74

 75

 76  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 77  " 편집 기능 설정

 78  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 79

 80  " 커서의 위치를 항상 보이게 함.

 81  set ru

 82

 83  " 완성중인 명령을 표시

 84  set sc

 85

 86  " 줄 번호 표시

 87  set nu

 88

 89  " 줄 번호 표시 너비 설정

 90  set nuw=5

 91

 92  " 탭 크기 설정

 93  set ts=4

 94  set sw=4

 95

 96  " 탭 -> 공백 변환 기능 (사용 안함)

 97  set noet

 98  set sts=0

 99

100  " 자동 줄바꿈 안함

101  set nowrap

102

103  " 마지막 편집 위치 복원 기능

104  au BufReadPost *

105  \ if line("'\"") > 0 && line("'\"") <= line("$") |

106  \   exe "norm g`\"" |

107  \ endif

108

109  " gVim 을 사용중일 경우 클립보드를 unnamed 레지스터로 매핑

110  " xterm_clipboard 기능이 있을 때에도 매핑 가능

111  if has("gui_running") || has("xterm_clipboard")

112      set cb=unnamed

113  endif

114

115  " magic 기능 사용

116  set magic

117

118  " 여러 가지 이동 동작시 줄의 시작으로 자동 이동

119  set sol

120

121  " 비주얼 모드에서의 동작 설정

122  set sel=exclusive

123

124  " SHIFT 키로 선택 영역을 만드는 것을 허용

125  " 영역 상태에서 Ctrl+F,B 로 이동하면 영역이 해제되어 버려서 해제

126  "set km=startsel,stopsel

127

128  " 가운데 마우스 버튼으로 붙여넣기 하는 것을 무효화한다.

129  map <MiddleMouse> <Nop>

130  map! <MiddleMouse> <Nop>

131

132  " 괄호짝 찾기 기능에 사용자 괄호 종류를 더한다.

133  set mps+=<:>

134

135  " 새로 추가된 괄호의 짝을 보여주는 기능

136  "set sm

137

138  " Insert 키로 paste 상태와 nopaste 상태를 전환한다.

139  " 함수 방식으로 바꾸었다. 자세한 것은 아래로~

140  "set pt=<Ins>

141

142  " 키 입력 대기시간을 무제한으로, 그러나 key codes 에 대해서는 예외

143  set noto ttimeout

144

145  " 키 입력 대기시간 설정 (milliseconds) (ttm 을 음수로 설정하면 tm 을 따라감)

146  set tm=3000 ttm=100

147

148  " 영역이 지정된 상태에서 Tab 과 Shift-Tab 으로 들여쓰기/내어쓰기를 할 수 있도록 함.

149  vmap <Tab> >gv

150  vmap <S-Tab> <gv

151

152  " 입력이 중단된 후 얼마 후에 swap 파일을 쓸 것인지와

153  " CursorHold 이벤트의 대기시간을 설정 (milliseconds)

154  set ut=10

155

156  " 몇 글자를 입력받으면 swap 파일을 쓸 것인지 설정

157  set uc=200

158

159

160  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

161  " 검색 기능 설정

162  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

163

164  " 검색어 강조 기능

165  set hls

166

167  " 검색시 파일 끝에서 처음으로 되돌리기 안함

168  set nows

169

170  " 검색시 대소문자를 구별하지 않음

171  set ic

172

173  " 똑똑한 대소문자 구별 기능 사용

174  set scs

175

176

177  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

178  " 모양 설정

179  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

180

181  " GUI 이면, 시작시 크기 설정

182  if has("gui_running")

183      set lines=50

184      set co=125

185  endif

186

187  " 시작시 전체화면으로 설정

188  " 이제 이것도 귀찮아졌다...!

189  if has("win32")

190  "   au GUIEnter * simalt ~x

191  endif

192

193  " 추적 수준을 최대로

194  set report=0

195

196  " 항상 status 라인을 표시하도록 함.

197  set ls=2

198

199

200  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

201  " GUI 설정

202  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

203

204  " 폰트 설정

205  if has("gui_running")

206      if has("win32")

207          set gfn=굴림체:h9:cHANGEUL

208  "       set gfn=GulimChe:h9:cHANGEUL

209      else

210          set gfn=GulimChe\ 9

211      endif

212  "   set gfn=Jung9\ 9

213  "   set gfn=Fixedsys:h12:cHANGEUL

214  endif

215

216

217  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

218  " filetype 기능 & Syntax Highlighting 기능

219  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

220

221  " 파일의 종류를 자동으로 인식

222  filet plugin indent on

223

224  " 몇몇 커스텀 확장자들에게 파일 형식 설정

225  "au BufRead,BufNewFile *.dic setl ft=php

226

227  " 파일 형식에 따른 Syntax Highlighting 기능을 켠다

228  sy enable

229

230

231  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

232  " indent 설정

233  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

234

235  " 자동 들여쓰기 사용 안함

236  set noai

237

238  " 똑똑한 들여쓰기 사용 안함

239  set nosi

240

241  " 내장된 indent 파일이 없어서 C indent 를 사용하는 경우

242  au FileType javascript,jsp setl cin

243

244  " 각 언어의 표준 indent 를 사용하는 경우

245  " 수동 추가하기가 귀찮아져서 결국 자동 인식으로 바꿨다.

246  "au FileType c,cpp,html,vim,java,sh,python,xml,perl,xf86conf,conf,apache

247  "\ if expand("<amatch>") != "" |

248  "\   if exists("b:did_indent") |

249  "\      unlet b:did_indent |

250  "\   endif |

251  "\ runtime! indent/<amatch>.vim |

252  "\ endif

253

254

255  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

256  " 컬러 스킴 (:colo desert)

257  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

258

259  if has("gui_running")

260      " Vim color file

261      " Maintainer:   Hans Fugal <hans@fugal.net>

262      " Last Change:  $Date: 2005/02/17 03:34:26 $

263      " URL:      http://hans.fugal.net/vim/colors/desert.vim

264

265      " cool help screens

266      " :he group-name

267      " :he highlight-groups

268      " :he cterm-colors

269

270      set background=dark

271      if version > 580

272          " no guarantees for version 5.8 and below, but this makes it stop

273          " complaining

274          hi clear

275          if exists("syntax_on")

276          syntax reset

277          endif

278      endif

279      let g:colors_name="desert"

280

281      hi Normal   guifg=White guibg=grey20

282

283      " highlight groups

284      hi Cursor   guibg=khaki guifg=slategrey

285      "hi CursorIM

286      "hi Directory

287      "hi DiffAdd

288      "hi DiffChange

289      "hi DiffDelete

290      "hi DiffText

291      "hi ErrorMsg

292      hi VertSplit    guibg=#c2bfa5 guifg=grey50 gui=none

293      hi Folded   guibg=grey30 guifg=gold

294      hi FoldColumn   guibg=grey30 guifg=tan

295      hi IncSearch    guifg=slategrey guibg=khaki

296      "hi LineNr

297      hi ModeMsg  guifg=goldenrod

298      hi MoreMsg  guifg=SeaGreen

299      hi NonText  guifg=LightBlue guibg=grey30

300      hi Question guifg=springgreen

301      hi Search   guibg=peru guifg=wheat

302      hi SpecialKey   guifg=yellowgreen

303      hi StatusLine   guibg=#c2bfa5 guifg=black gui=none

304      hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none

305      hi Title    guifg=indianred

306      hi Visual   gui=none guifg=khaki guibg=olivedrab

307      "hi VisualNOS

308      hi WarningMsg   guifg=salmon

309      "hi WildMenu

310      "hi Menu

311      "hi Scrollbar

312      "hi Tooltip

313

314      " syntax highlighting groups

315      hi Comment   guifg=SkyBlue

316      hi Constant  guifg=#ffa0a0

317      hi Identifier    guifg=palegreen

318      hi Statement     guifg=khaki

319      hi PreProc   guifg=indianred

320      hi Type      guifg=darkkhaki

321      hi Special   guifg=navajowhite

322      "hi Underlined

323      hi Ignore    guifg=grey40

324      "hi Error

325      hi Todo      guifg=orangered guibg=yellow2

326

327      " color terminal definitions

328      hi SpecialKey    ctermfg=darkgreen

329      hi NonText   cterm=bold ctermfg=darkblue

330      hi Directory     ctermfg=darkcyan

331      hi ErrorMsg  cterm=bold ctermfg=7 ctermbg=1

332      hi IncSearch     cterm=NONE ctermfg=yellow ctermbg=green

333      hi Search    cterm=NONE ctermfg=grey ctermbg=blue

334      hi MoreMsg   ctermfg=darkgreen

335      hi ModeMsg   cterm=NONE ctermfg=brown

336      hi LineNr    ctermfg=3

337      hi Question  ctermfg=green

338      hi StatusLine    cterm=bold,reverse

339      hi StatusLineNC  cterm=reverse

340      hi VertSplit     cterm=reverse

341      hi Title     ctermfg=5

342      hi Visual    cterm=reverse

343      hi VisualNOS     cterm=bold,underline

344      hi WarningMsg    ctermfg=1

345      hi WildMenu  ctermfg=0 ctermbg=3

346      hi Folded    ctermfg=darkgrey ctermbg=NONE

347      hi FoldColumn    ctermfg=darkgrey ctermbg=NONE

348      hi DiffAdd   ctermbg=4

349      hi DiffChange    ctermbg=5

350      hi DiffDelete    cterm=bold ctermfg=4 ctermbg=6

351      hi DiffText  cterm=bold ctermbg=1

352      hi Comment   ctermfg=darkcyan

353      hi Constant  ctermfg=brown

354      hi Special   ctermfg=5

355      hi Identifier    ctermfg=6

356      hi Statement     ctermfg=3

357      hi PreProc   ctermfg=5

358      hi Type      ctermfg=2

359      hi Underlined    cterm=underline ctermfg=5

360      hi Ignore    cterm=bold ctermfg=7

361      hi Error     cterm=bold ctermfg=7 ctermbg=1

362  else

363  " 사용하는 터미널 종류에 따라 밝음, 어두움을 설정

364  " 자고로 터미널은 어두운겨 -ㅅ-

365      set bg=dark "light

366  endif

367

368

369  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

370  " 단축키 설정

371  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

372

373  " 상용구 설정

374  iab xdate <C-R>=strftime("%Y-%m-%d %H:%M:%S")<CR>

375  iab xtime <C-R>=strftime("%H:%M:%S")<CR>

376  "iab xname 인클루드

377

378  " BufExplorer 플러그인 (스크립트 번호: 42)

379  " :ls 와 :b 에 익숙해져서 이젠 필요없다...

380  "nnoremap <silent> <F5> :BufExplorer<CR>

381

382  " Vim 자체 Explore 기능

383  " :E 라는 게 있었군...

384  "nnoremap <silent> <F6> :Explore<CR>

385

386  " Vim 정규식이 아닌 진짜 정규식 사용을 의무화(?)

387  " \v 라는 글자가 항상 표시되니까 햇갈린다... -.-

388  "map / /\v

389

390

391  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

392  " GUI 간소화

393  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

394

395  if has("gui_running")

396

397  " gVim 메뉴를 사용하지 않는다. 대부분의 명령보다 선행되어야 한다.

398  "   let did_install_default_menus = 1

399  "   let did_install_syntax_menu = 1

400  "   let skip_syntax_sel_menu = 1

401  " 설정 방식이 바뀌었다.

402      set go-=m

403

404  " 툴바를 보이지 않게 한다.

405      set go-=T

406

407  " 스크롤바를 표시하지 않는다.

408      set go-=l

409      set go-=L

410      set go-=r

411      set go-=R

412      set go-=b

413

414  " GUI 여서 마우스가 사용 가능하면...

415  " 마우스를 사용하지 않는다. (누르면 이동되는게 귀찮다!)

416  "   set mouse=a

417      set mouse=

418

419  " 마우스 모델을 popup 으로 함.

420      set mousem=popup

421

422  " '간단한 선택' 다이얼로그가 새 창에서 뜨지 않도록...

423      set go+=c

424

425  endif

426

427

428  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

429  " 편리한 기능

430  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

431

432  " Tab 자동 완성시 가능한 목록을 보여줌

433  set wmnu

434

435  " 파일 탐색기 설정

436  let g:explVertical=1

437  let g:explSplitRight=1

438  let g:explStartRight=1

439  let g:explWinSize=20

440

441  " vim -b : xxd 포맷으로 바이너리 파일을 수정합니다! (:help hex-editing)

442  " ...너무 ㅂㅌ적인 방법인 것 같아서 주석처리;

443  "augroup Binary

444  "   au!

445  "   au BufReadPre  *.bin let &bin=1

446  "   au BufReadPost *.bin if &bin | %!xxd

447  "   au BufReadPost *.bin set ft=xxd | endif

448  "   au BufWritePre *.bin if &bin | %!xxd -r

449  "   au BufWritePre *.bin endif

450  "   au BufWritePost *.bin if &bin | %!xxd

451  "   au BufWritePost *.bin set nomod | endif

452  "augroup END

453

454  " Spell Checking 기능 (영어)

455  " 기본적으로는 비활성화

456  set nospell spelllang=en

457

458  " 각종 toggle 기능

459  fu! ToggleNu()

460      let &nu = 1 - &nu

461  endf

462  fu! ToggleList()

463      let &list = 1 - &list

464  endf

465  fu! TogglePaste()

466      let &paste = 1 - &paste

467  endf

468  fu! ToggleSpell()

469      let &l:spell = 1 - &l:spell

470  endf

471  map \n :call ToggleNu()<CR>

472  map \l :call ToggleList()<CR>

473  map \p :call TogglePaste()<CR>

474  map \s :call ToggleSpell()<CR>

475

476

477  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

478  " 기타 설정

479  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

480

481  " 매크로 실행중에 화면을 다시 그리지 않음

482  set lz

483

484  " 프로그램 시작시 플러그인 로드

485  set lpl

486

487  "noeol 설정

488  "au BufNew * set bin | set noeol

489  "set bin | set noeol

490

491  " ㅂㅌ barosl 은 모든 플랫폼에서 unix 줄 변경자를 쓰겠습니다! ..orz

492  " 경고: 만일 당신의 vim 이 '정상적으로' 동작하길 원하시면,

493  " 바로 다음줄은 주석처리 하거나 없애세요. -.-;;

494  set ff=unix

495

496  " unix dos mac 줄 변경자 모두 다 읽을 수 있도록 합니다.

497  set ffs=unix,dos,mac

498

499

500  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

501  " End of File

502  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


'Work > 리눅스' 카테고리의 다른 글

절대경로 상대경로  (1) 2010.09.28
9월 17일 - 해커스쿨 커뮤니티  (1) 2010.09.17