2014. 3. 13. 17:48

Vim 도움말 and Tips

###################
#Vim tips and 도움말
###################

== Overview ==
a. 설정 파일

* Linux : $HOME/.vimrc

* Windows : C:\Program FilesVim\_vimrc 이곳입니다.
* 주석 : "
* 설정예제

- http://pastime0.tistory.com/121
: 폰트 등 많은 설정 예제 있다.
- http://a.zany.kr:9003/board/bView.asp?aCode=2309&bCode=10&cBlock=0&cPageNo=1&sString=&sType=0
- http://airkims.tistory.com/45
- http://blog.daum.net/bluesky71/4651471

- http://hisjournal.net/blog/176 #많은 예제 포함,
* 도움말 모음
- http://gypark.pe.kr/wiki/ViEditor


-- --

== 주요 설정 예제 ==

* set fileencodings=ucs-bom,utf-8,cp949,euc-kr,UHC,default,latin1 " 한글 인코딩
* set guifont=Consolas:h10 " 폰트를 바꿔주는 셋팅.. h10은 크기
* set guifont=Bitstream\ Vera\ Sans\ Mono:h8 " 폰트 리스트네임에 빈칸이 있을 경우의 셋팅.. 크기는 8
* au GUIEnter * winsize 100 50 " gvim실행시 뜨는 창크기 조절
* set backupdir=C:\myBox\myData\Note.data\vimBackup


-- --

== 사용 Tip ==

a. Reference
     * https://kldp.org/node/74138
a. Tips

* utf8 문서 보기
- set enc=utf8
* vim Open new tab
여러개의 파일을 오픈 하게 되면 한 창에서 계속 오픈되는데 아래 명령어를 사용하면 새로운 탭에서 열수 있다. gvim.exe --remote-tab-silent
* " ESC키를 누르면 한글 모드가 해제
" 입력모드에서 이전 언어 설정 모드 유지
inoremap <ESC> <ESC>:set imdisable<CR>
nnoremap i :set noimd<CR>i
nnoremap I :set noimd<CR>I
nnoremap a :set noimd<CR>a
nnoremap A :set noimd<CR>A
nnoremap o :set noimd<CR>o
nnoremap O :set noimd<CR>O
a. 빈줄 또는 new line 넣기
* \r로 찾거나 바꾸면 된다.
a. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.
* %s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g


-- --
== Encoding ==

a. reference

http://kldp.org/node/45359


a. encoding, fileencoding, fileencodings 옵션 차이

1) encoding 은 화면에 보이는 것, 시스템이나 터미널에 관련되어 있지 파일 자체에는 관계 없다
2) fileencoding 은 파일에 저장되는 코드, encoding 과 fileencoding 이 같으면 (보통 euc-kr 이나 cp949?) 상관없고 이 둘이 다르면 파일을 읽거나 쓸 때 변환이 된다.
3) fileencodings 에는 여러 인코딩 룰을 적어주면 파일을 읽을 때 하나씩 검사해서 맞는 인코딩을 찾아내어 자동으로 fileencoding 을 세팅해준다.
- 새파일이면 터미널의 인코딩대로 저장되고 있던파일이면 원래 파일 인코딩대로 저장됩니다.
  

-- --

== " 단축키 설정 " ==

" Ctrl+t는 탭 열기, Ctrl+h,l로 탭 이동, Ctrl+w는 현재창 닫기 "
map <C-t> :tabnew<CR>
map <C-h> gT
map <C-l> gt
map <C-w> :q!<CR>


-- --
== Folding ==
 a. Reference

* http://gypark.pe.kr/wiki/ViEditor
* https://github.com/netj/vim-ko/blob/master/doc/usr_28.kox
* http://www.linux.com/learn/tutorials/442438-vim-tips-folding-fun
* http://namomo.egloos.com/viewer/1672929
* http://kukuta.tistory.com/7
* https://github.com/netj/vim-ko/blob/master/doc/usr_28.kox


== Folding tip ==
a. fold method와 marker 설정
    - set foldmethod=marker
    - set foldmarker={{{,}}}
a. 2-level folding

- folding 안에 또 folding marker를 정의해 주면 된다.
- 예를 들면 가장 윗 레벨(첫번째) fold를 {{{로 시작하고, 두번째 레벨 fold를
{{{,}}}로 여러개 만들고 마지막을 }}}로 닫으면 첫번째 레벨 fold안에
두번째 fold들이 들어있게 된다.
a. folding 접기 풀기
   폴드 열기 : zm(한 단계씩 열기), zM(전체 열기)
   폴드 닫기 : zr(한 단계씩 닫기), zR(전체 닫기)
   - fold 를 펼치는 것은 
     zo - 현재 커서가 위치한 곳의 가장 바깥쪽의 fold 
     zO - 현재 커서가 위치한 곳에 중첩된 모든 fold 
     zr - 전체적으로 제일 바깥쪽에 위치한 모든 fold 
     zR - 모든 fold 
- fold 를 접는 것은
     zc - 현재 커서가 위치한 곳의 가장 안쪽의 fold 
     zC - 현재 커서가 위치한 곳에 중첩된 모든 fold 
     zm - 전체적으로 제일 안쪽에 위치한 모든 fold 
     zM - 모든 fold


a. 소스파일이 폴딩 되어 있을때 폴딩범위를 보여주는 컬럼의 수를 설정한다.
    - set fdc=3
a. Ctrl+V키 설정
   * Gvim에서는 Ctrl+V는 붙여 넣기로 되어 있으므로 특수키를 쓰기 위한 키는 'Ctrl+Q'로 되어 있다.

-- --

== Color Scheme ==

 a. Menu > Edit > Color Scheme

 a. 검정 바탕에 회색 글씨로 motus가 편하다

    - http://www.vim.org/scripts/script.php?script_id=1393

 a. file path

    - \Program Files\Vim\vim74\colors


-- --
== sample in 2014 ==

set encoding=utf8
set fileencodings=ucs-bom,utf-8,cp949,euc-kr,UHC,default,latin1
set tabstop=3 "문서안의 \t 문자를 몇칸으로 보여줄지"
set sw=3 " Shift Width, visual mode에서 tab간격"
set sts=3 "Soft Tab Stop, tab키를 눌렀을때 몇칸을 띄울지"
set backupdir=C:\myBox\myData\Note.data\vimBackup
set lines=41
set columns=88
set ignorecase
set smartindent
set wrap
colorscheme motus
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" folding
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set foldmethod=marker
set foldmarker=\ ==,--\ --
set foldcolumn=3
set foldlevel=3
highlight Folded guibg=darkgrey guifg=darkblue

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 단축키 설정 "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Ctrl+t는 탭 열기, Ctrl+h,l로 탭 이동, Ctrl+w는 현재창 닫기 "
map <C-t> :tabnew<CR>
map <C-h> gT
map <C-l> gt
map <C-w> :q<CR>
map <C-s> :w

" F5는 TagList 열기 "
map <F5> :TlistToggle<CR>

" Ctrl+e는 디렉토리 목록 열기, Ctrl+Enter로 파일 선택 후 디렉토리 목록 닫기 "
map <C-e> :NERDTree<CR>

" Ctrl+y 사전 검색, 단어 위에서 Shift+k를 눌러도 동작 "
map <C-y> :!ydic

-- --
-- --