Created
November 10, 2017 04:11
-
-
Save andrwj/c3812650d7223d7ff3abda96a569a671 to your computer and use it in GitHub Desktop.
vimrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"Initialization {{{ | |
set nocompatible | |
let mapleader = '\' | |
" }}} | |
"Loading Vundle Plugins: {{{ | |
filetype on | |
set rtp+=~/.vim/bundle/Vundle.vim | |
set runtimepath+=~/.vim/bundle/ctrlp.vim | |
set runtimepath+=~/.vim/bundle/dart-vim-plugin | |
call vundle#begin() | |
Plugin 'gmarik/Vundle.vim' | |
"Plugin 'Shougo/denite.vim' "unite replacement but needs python3 | |
"Plugin 'Shougo/unite.vim' "vimfiler.vim에 필요 | |
"Plugin 'Shougo/vimfiler.vim' "nerdtree alternative | |
"Plugin 'Shougo/neossh.vim' | |
Plugin 'shougo/vimproc' | |
Plugin 'shougo/vimshell' | |
"Plugin 'christoomey/vim-tmux-navigator' | |
"Plugin 'dart-lang/dart-vim-plugin' | |
"Plugin 'edkolev/promptline.vim' | |
"Plugin 'edkolev/tmuxline.vim' | |
"Plugin 'jmcantrell/vim-virtualenv' | |
Plugin 'mattn/emmet-vim' "https://github.com/mattn/emmet-vim | |
"Plugin 'mklabs/grunt.vim' "https://github.com/mklabs/grunt.vim | |
"Plugin 'tpope/vim-scriptease' "https://github.com/tpope/vim-scriptease | |
"Plugin 'ujihisa/vimshell-ssh' | |
"Plugin 'vim-pandoc/vim-pandoc' | |
"Plugin 'vim-pandoc/vim-pandoc-syntax' | |
"Plugin 'vimrepress' | |
"Plugin 'vimwiki/vimwiki' "몇가지 수정을 위해 fork 하였다 | |
"Plugin 'xolox/vim-misc' "required by vim-notes.git | |
"Plugin 'xolox/vim-notes.git' | |
"Plugin 'othree/eregex.vim' | |
"Plugin 'terryma/vim-expand-region' "그닥 효과적인지 모르겠다.. | |
"Plugin 'mattn/flappyvird-vim' | |
"Plugin 'idanarye/vim-merginal' "manage Git branches | |
"Plugin 'zoeesilcock/vim-caniuse' | |
"Plugin 'gilligan/vim-lldb' | |
"Plugin 'Zuckonit/vim-airline-todo' | |
"Plugin 'junegunn/seoul256.vim' | |
"Plugin 'sk1418/HowMuch' "수식계산 | |
"Plugin 'flazz/vim-colorschemes' | |
"Plugin 'biskark/vim-ultimate-colorscheme-utility' | |
"Plugin 'altercation/vim-colors-solarized' | |
Plugin 'dracula/vim' "Darducla theme | |
"Plugin 'drmikehenry/vim-fixkey/' "매크로와 같이 쓸때 주의 | |
"Plugin 'matze/vim-move' "현재 라인을 위/아래로 이동 | |
"Plugin 'mattboehm/vim-unstack' "Parse stack traces or quickfix entries and open the result in vim splits | |
"Plugin 'justinmk/vim-gtfo' "현재 파일이나 폴더를 터미널이나 파인더로 열기 (got - terminal, gof - finder) | |
"Plugin '29decibel/vim-stringify' "라인을 싱글/더블 쿼트로 연결해서 문자열로 만들어줌 | |
Plugin 'Lokaltog/vim-easymotion' "'/' - (search)키맵핑 | |
"Plugin 'Raimondi/delimitMate' | |
"Plugin 'SirVer/ultisnips' | |
"Plugin 'Valloric/YouCompleteMe' | |
Plugin 'andrwj/pebble-vim-syntax' | |
"Plugin 'airblade/vim-gitgutter' | |
"Plugin 'andrwj/vimwiki' | |
"Plugin 'benmills/vimux.git' "Interactive with tmux | |
"Plugin 'bling/vim-airline' | |
"Plugin 'paranoida/vim-airlineish' "Theme for vim-airlin | |
"Plugin 'dhruvasagar/vim-table-mode' | |
"Plugin 'fatih/vim-go' | |
"Plugin 'fatih/molokai' | |
"Plugin 'gregsexton/gitv' | |
"Plugin 'groenewege/vim-less' | |
"Plugin 'honza/vim-snippets' | |
Plugin 'Mizuchi/vim-ranger' "File Manager <C-k><C-b> | |
"Plugin 'jelera/vim-javascript-syntax' | |
"Plugin 'marijnh/tern_for_vim' "JavaScript completer | |
"Plugin 'othree/javascript-libraries-syntax.vim' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'tacahiroy/ctrlp-funky' | |
Plugin 'sgur/ctrlp-extensions.vim' | |
Plugin 'jasoncodes/ctrlp-modified.vim' | |
Plugin 'kien/rainbow_parentheses.vim' | |
Plugin 'lokikl/vim-ctrlp-ag' | |
Plugin 'fisadev/vim-ctrlp-cmdpalette' "Command palette like Sublime Text | |
"Plugin 'tacahiroy/ctrlp-ssh' "tmux를 실행한 상태여야함 | |
"Plugin 'klen/python-mode' | |
"Plugin 'nvie/vim-flake8' | |
"Plugin 'majutsushi/tagbar' | |
"Plugin 'mattn/gist-vim' | |
"Plugin 'mattn/webapi-vim' "An Interface to WEB APIs. | |
Plugin 'mhinz/vim-signify' "Show a VCS diff using Vim's sign column. | |
"vim-node:Tools and environment to make Vim superb for developing with Node.js. Like Rails.vim for Node. | |
"Plugin 'moll/vim-node' | |
"Plugin 'myhere/vim-nodejs-complete' "omnifunc for nodejs (불편하다) | |
Plugin 'godlygeek/tabular' "tabular vim-markdown은 같이 설정되야 함 | |
Plugin 'plasticboy/vim-markdown' "pandoc을 대신함 | |
"Plugin 'scrooloose/nerdtree' | |
"Plugin 'Xuyuanp/nerdtree-git-plugin' | |
"Plugin 'scrooloose/nerdcommenter' | |
"Plugin 'scrooloose/syntastic' | |
Plugin 'szw/vim-maximizer' "<F3> to maximize Tab/Window | |
Plugin 'terryma/vim-multiple-cursors' "동시에 바꾸기 <C-n> (i.e. Sublime Text CMD-D) | |
Plugin 'tpope/vim-fugitive' "Git wrapper so awesome | |
"Plugin 'tpope/vim-haml' "Vim runtime files for Haml, Sass, and SCSS | |
"Plugin 'tpope/vim-repeat' | |
"Plugin 'tpope/vim-surround.git' "문장/구절을 둘러싼 인용부호를 바꿈: cs"' | |
"Plugin 'guns/xterm-color-table.vim' | |
"Plugin 'junegunn/limelight.vim' "<F11> - Limelight [0.0 ~ 1.0] | |
Plugin 'othree/html5.vim' | |
"Plugin 'toyamarinyon/vim-swift' "Swift programming language | |
"Plugin 'burnettk/vim-angularburnettk/vim-angular' "https://github.com/burnettk/vim-angular | |
Plugin 'jeetsukumaran/vim-markology' "visualizing marks | |
Plugin 'ap/vim-buftabline' "Tab 형태처럼 Buffer 목록을 표시 | |
Plugin 't9md/vim-choosewin' "land to window you choose like tmux's 'display-pane' keymap: - | |
"Plugin 'itchyny/calendar.vim' | |
"Plugin 'junegunn/goyo.vim' | |
"Plugin 'duff/vim-scratch' "Scratch buffer | |
"Plugin 'mhinz/vim-startify' | |
Plugin 'gorkunov/smartpairs.vim' "press v .. v.. v .. and it extends | |
"Plugin 'Rykka/riv.vim' "reStructedText | |
"Plugin 'Rykka/clickable.vim' "riv plugin | |
"Plugin 'ekalinin/Dockerfile.vim' | |
Plugin 'tomtom/tcomment_vim' | |
Plugin 'nathanaelkane/vim-indent-guides' "들여쓰기 가이드라인 표시 | |
"Plugin 'tpope/vim-fireplace' "Clojure REPL for vim | |
"Plugin 'kovisoft/slimv' "Superior Lisp Interaction Mode for Vim | |
"Plugin 'leafgarland/typescript-vim' "Typescript | |
Plugin 'Quramy/tsuquyomi' "TypeScript for vim | |
call vundle#end() " required | |
filetype plugin indent on " required | |
" }}} | |
"Global Settings: {{{ | |
"solarized 테마 토글 | |
"call togglebg#map("<F5>") | |
scriptencoding utf-8 | |
set nobackup | |
set nowritebackup | |
set swapfile | |
set backupdir=~/tmp | |
set cursorline | |
set backspace=indent,eol,start | |
" set virtualedit=onemore "줄끝으로 커서 이동가능하게 | |
set number | |
set showmatch | |
set hlsearch "파일 내용이 클 경우, 검색할 때 시간끄는 요인이 된다 | |
set incsearch | |
set ignorecase | |
set smartcase | |
set wildmenu | |
set wildmode=list:longest,full | |
set completeopt=preview,longest,menu | |
set directory=/tmp | |
"set autochdir "편집하는 파일이 있는 폴더위치로 작업폴더 위치를 자동으로 변경 | |
let &titlestring = @% " 탭제목에 경로제외하고 파일명만 표시 | |
"let &titlestring = expand('%:p') " 탭제목에 전체 경로표시할 떄 | |
set title | |
set titleold="" | |
set cmdheight=1 " 명령입력창 높이 | |
set shell=/usr/local/bin/bash | |
" set ts=4 sts=4 sw=4 expandtab | |
set tabstop=2 | |
set softtabstop=2 | |
set shiftwidth=2 | |
set expandtab | |
set history=1000 | |
set splitright | |
runtime! ftplugin/man.vim "vim을 매뉴얼뷰어로 지정 | |
set hidden | |
set encoding=utf-8 | |
set ruler | |
set showcmd | |
set showmode | |
set showmatch | |
set matchtime=2 | |
set ambiwidth=single "show whitespace characters | |
set autoindent | |
"Section: Folding {{{ | |
set foldmethod=marker | |
set nofoldenable | |
set foldlevel=0 | |
"}}} | |
"Section:Clickable {{{ | |
set ttyfast | |
set ttymouse=xterm2 | |
set mouse=a | |
set mousehide "타이핑하는 동안 마우스 숨김 | |
""}}} | |
syntax on | |
if has("gui_running") | |
"set guifont=Source\ Code\ Pro\ for\ Powerline:h17 | |
set guifont=Hermit:h16 | |
set background=dark | |
set cursorcolumn | |
else | |
set background=dark | |
endif | |
"ctags 파일 참조위치를 편지중인 파일이 위치한 폴더에서 먼처 찾고 상위폴더로 옮겨가면서 찾는다 (need +autochdir) | |
"공백없이 comman(,)로 항목구분 | |
"set tags=./tags; | |
" Powerline symbols: ⮂ ⮃ ⮀ ⮁ ⭤·»¬ | |
set laststatus=2 | |
"set ambiwidth=double | |
set fillchars+=stl:\ ,stlnc:\ | |
set pastetoggle=<F2> | |
set paste | |
"workaround for 'Nothing in register *' | |
if $TMUX == '' | |
set clipboard+=unnamed | |
endif | |
"Invisible character colors | |
highlight NonText guifg=#4a4a59 | |
highlight SpecialKey guifg=#4a4a59 | |
"현재줄 강조색상 지정 | |
highlight CursorColumn ctermbg=242 | |
"Section: Italic comments {{{ | |
".vim/terminfo/xterm-256color-italic.terminfo | |
if &term=~ 'xterm-256color-italic' | |
set t_ZH=[3m | |
set t_ZR=[23m | |
"highlight Comment font=Anonymous_Pro:h13 | |
highlight Comment cterm=italic | |
highlight Comment ctermfg=240 guifg=#aaaaaa "rgb=8,8,8" | |
highlight Comment gui=italic | |
endif | |
"}}} | |
"문법강조의 cchar까지 보이지 않게 함 | |
set conceallevel=2 | |
"Section: Spell checking {{{ | |
set spelllang=en | |
set nospell | |
set novisualbell | |
set noerrorbells | |
set magic | |
"}}} | |
"Section: Encription {{{ | |
set cryptmethod=blowfish | |
autocmd BufReadPost * if &key != "" | set noswapfile nowritebackup viminfo= nobackup noshelltemp history=0 secure | endif | |
"}}} | |
"Section: Lisp {{{ | |
autocmd BufNewFile,BufRead .spacemacs set syntax=lisp | |
"}}} | |
" }}} | |
"KeyMapping: {{{ | |
"Section: Global {{{ | |
"let g:agprg="/usr/local/bin/ag --ignore-case --ignore .git --ignore .hg --all-text --skip-vcs-ignores --column" | |
"let g:agprg="/Users/andrwj/bin/ag.sh" | |
"let g:agformat="%f:%l:%m" | |
"let g:aghighlight=1 | |
"nnoremap <leader>f :Ag | |
"<스페이스>키를 눌러 커서위치의 단어를 선택 | |
"nnoremap <space> viw | |
".vimrc 다시 읽기 | |
nnoremap <leader>rf :source $MYVIMRC<cr> | |
"cursorcolumn 토글 | |
"색상변경 :highlight CursorColumn ctermbg=Grey | |
nnoremap <leader>\| :set cursorcolumn!<cr> | |
"ctags 이전으로 돌아가기 ctrl-[ | |
"nnoremap <C-[> :pop<cr> | |
"cursor color | |
autocmd BufNewFile,InsertLeave * hi Cursor guibg=red | |
autocmd BufEnter,InsertEnter * hi Cursor guibg=green | |
"JSON formatter | |
nnoremap =j :%!python -m json.tool<CR> | |
function! s:formatJSON() | |
execute ':%!python -m json.tool' | |
endfunction | |
" | |
nnoremap <C-m> :tnext<CR> | |
"}}} | |
"Section: Tab {{{ | |
"nnoremap <silent> <C-a><C-n> :tabnew<cr> | |
nnoremap <silent> <leader>n :tabnew<cr> | |
"au FileType * map <silent> <C-a><C-]> :tabnext<cr> | |
nnoremap <silent> <leader>] :tabnext<cr> | |
"au FileType * map <silent> <C-a><C-[> :tabprevious<cr> | |
nnoremap <silent> <leader>[ :tabprevious<cr> | |
"au FileType * map <silent> <C-a><C-w> :tabclose<cr> | |
nnoremap <silent> <leader>w :tabclose<cr> | |
"}}} | |
"Section: 'Mizuchi/vim-ranger' (새로운 탭에 파일 열기) {{{ | |
"새로운 탭에 파일 열기. open new tab | |
"This only works in version of console vim, not with MacVIM | |
"nnoremap <silent> <C-k><C-b> :tabe %:p:h<cr> | |
"수직으로 화면 나누고 파일열기 | |
"nnoremap <silent> <C-k><C-v> :VsplitVifm<cr> | |
"수직으로 화면 나누고 diff 출력 | |
"nnoremap <silent> <C-k><C-d> :DiffVifm<cr> | |
"수평으로 화면 나누고 파일 읽어들임 | |
"nnoremap <silent> <C-k><C-s> :SplitVifm<cr> | |
"}}} | |
"Section: 그외 ... {{{ | |
"괄호안을 지움 dp | cp | |
"onoremap p i( | |
"괄호안을 지움cin | |
"onoremap in( :<c-u>normal! f(vi(<cr> | |
"return 문을 만날때까지 삭제 db | |
"onoremap b /return<cr> | |
"현재줄을 다음줄 뒤로 붙이기 | |
"nnoremap <leader>sw viw^<c-v>$d<esc>pJ$<cr> | |
"선택된 블럭양끝에 따옴표 넣기 | |
"nnoremap <leader>" viw<esc>a"<esc>hbi"<esc>lel | |
"}}} | |
augroup keymapping | |
autocmd! | |
"Filetype: * {{{ | |
map <leader>q :q!<cr> | |
map <leader>Q :qa!<cr> | |
"au FileType * nmap <Leader>\ :VimuxPromptCommand<cr> | |
"Section: 버퍼 {{{ | |
map <space>b :buffer | |
map <space>l :ls<cr> | |
map <space>w :bdelete!<cr> | |
map <space>[ :bprevious!<cr> | |
map <space>] :bnext!<cr> | |
map <space>n :vnew<cr> | |
map <space>s :new<cr> | |
map <space>o :VimFilerExplorer<cr> | |
nnoremap <silent>== :MaximizerToggle<cr> | |
vnoremap <silent><F3> :MaximizerToggle<cr>gv | |
inoremap <silent><F3> <C-o>:MaximizerToggle<cr> | |
"}}} | |
"Section: list character (vim-go 패키지의 lcs 처리를 위해서 필요할 때만 enable 시킨다 | |
"Filetype: go {{{ | |
"map <silent> <C-a><C-m> :set list lcs=trail:·,tab:»,eol:¬<cr> | |
"map <silent> <C-a><C-u> :set nolist<cr> | |
map <silent> <Leader>\w :set list lcs=trail:·,tab:»,eol:¬<cr> | |
map <silent> <Leader>\W :set nolist<cr> | |
"}}} | |
"}}} | |
"Filetype: shell {{{ | |
"autocmd FileType sh nnoremap <buffer> <localleader>c I#<esc> | |
"}}} | |
"Filetype: vim {{{ | |
autocmd FileType vim setlocal foldmethod=marker | |
"}}} | |
"Filetype: js {{{ | |
"autocmd FileType javascript set dictionary+=$HOME/.vim/dicts/node.dict | |
"autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS | |
"autocmd FileType javascript set tags+=~/.vim/tags/v5.0.1/tags | |
"}}} | |
"Filetype: json {{{ | |
" JSON prettifier | |
autocmd FileType json,js nnoremap <buffer> <leader>fmt :%!python -m json.tool<cr> | |
autocmd BufNewFile,BufRead *.json set ft=javascript | |
"}}} | |
"Filetype: markdown {{{ | |
au BufRead,BufNewFile *.md set filetype=markdown | |
"}}} | |
"Filetype: python {{{ | |
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class | |
autocmd BufRead *.py set nocindent | |
autocmd BufWritePre *.py normal m`:%s/\s\+$//e `` | |
" 120 컬럼위치 넘어가면 색상 변경 (이럴필요가 있을까? 2014-9-5) | |
"autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black | |
"autocmd FileType python match Excess /\%120v.*/ | |
"autocmd FileType python set nowrap | |
"PEP8 경고 무시 | |
let g:pep8_ignore="E501,W601,E265" | |
"}}} | |
augroup END | |
" }}} | |
"Plugin: NERDtree {{{ | |
augroup NERDTree | |
" let g:NERDTreeDirArrowExpandable = '▸' | |
" let g:NERDTreeDirArrowCollapsible = '▾' | |
autocmd! | |
nnoremap <silent> <C-k><C-t> :NERDTreeToggle<cr> | |
"파일지정없이 vim을 열었을 경우, 자동으로 NERDTree를 동작시킴 | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
augroup END | |
"}}} | |
"Plugin: vim-airline {{{ | |
if !exists('g:airline_symbols') | |
let g:airline_symbols = {} | |
endif | |
" unicode symbols | |
let g:airline_symbols.space = "\ua0" | |
let g:airline_left_sep= '⮀' | |
let g:airline_left_alt_sep = '⮁' | |
let g:airline_right_sep='⮂' | |
let g:airline_right_alt_sep = '⮃' | |
let g:airline_symbols.branch = '⭠' | |
let g:airline_symbols.readonly = '⭤' | |
let g:airline_symbols.linenr = '⭡' | |
let g:airline_symbols.paste = 'ρ' | |
let g:airline_symbols.whitespace = '·' | |
let g:airline_detect_modified=1 | |
let g:airline_powerline_fonts = 1 | |
let g:airline#extensions#tabline#left_sep = '⮀' | |
let g:airline#extensions#tabline#left_alt_sep = '⮁' | |
let g:airline#extensions#tabline#enabled=1 | |
let g:airline_theme='solarized' | |
let g:airline_section_z='' | |
"let g:airline_detect_whitespace=0 | |
let g:airline#extensions#syntastic#enabled=1 | |
let g:airline#extensions#hunks#enabled=1 | |
let g:airline#extensions#branch#enabled=1 | |
let g:airline#extensions#eclim#enabled=0 | |
let g:airline#extensions#bufferline#enabled=0 | |
let g:airline#extensions#promptline#enabled=0 | |
let g:airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh" | |
let airline#extensions#promptline#color_template = 'normal' | |
"}}} | |
"Plugin: vim-promptline {{{ | |
"promptline plugin은 zshell을 사용할때에만 적용하기로 한다 (2014-8-17) | |
"let g:promptline_theme = 'jelly' | |
"let g:promptline_powerline_symbols=1 | |
"let git_sha_slice = { | |
" \'function_name': 'git_sha', | |
" \'function_body': [ | |
" \'function git_sha {', | |
" \' local sha', | |
" \' sha=$(git rev-parse --short HEAD 2>/dev/null) || return 1', | |
" \' printf "%s" "$sha"', | |
" \'}']} | |
" | |
"let g:promptline_preset = { | |
" \'a' : [ promptline#slices#host() ], | |
" \'b' : [ promptline#slices#user() ], | |
" \'c' : [ promptline#slices#cwd() ], | |
" \'y' : [ promptline#slices#vcs_branch() ], | |
" \'x' : [ git_sha_slice ], | |
" \'warn' : [ promptline#slices#last_exit_code() ], | |
" \'options': { | |
" \'left_sections' : [ 'a', 'b', 'c' ], | |
" \'right_sections' : [ 'x', 'y', 'warn' ], | |
" \'left_only_sections' : [ 'a', 'b', 'c' ] }} | |
" | |
"}}} | |
"Plugin: tagbar {{{ | |
"Section: KeyMap {{{ | |
augroup tagbarWindow | |
autocmd! | |
map <silent> <C-c><C-c> :TagbarOpen fj<cr> | |
map <silent> <C-c><C-x> :TagbarClose<cr> | |
augroup END | |
"}}} | |
"Section: gotags + tagbar {{{ | |
let g:tagbar_type_go = { | |
\ 'ctagstype' : 'go', | |
\ 'kinds' : [ | |
\ 'p:package', | |
\ 'i:imports:1', | |
\ 'c:constants', | |
\ 'v:variables', | |
\ 't:types', | |
\ 'n:interfaces', | |
\ 'w:fields', | |
\ 'e:embedded', | |
\ 'm:methods', | |
\ 'r:constructor', | |
\ 'f:functions' | |
\ ], | |
\ 'sro' : '.', | |
\ 'kind2scope' : { | |
\ 't' : 'ctype', | |
\ 'n' : 'ntype' | |
\ }, | |
\ 'scope2kind' : { | |
\ 'ctype' : 't', | |
\ 'ntype' : 'n' | |
\ }, | |
\ 'ctagsbin' : 'gotags', | |
\ 'ctagsargs' : '-R -sort -silent' | |
\ } | |
"}}} | |
"Section: JavaScript {{{ | |
let g:tagbar_type_javascript = { | |
\ 'ctagstype' : 'javascript', | |
\ 'kinds' : [ | |
\ 'o:objects', | |
\ 'c:classes', | |
\ 'm:methods', | |
\ 'p:properties', | |
\ 'v:global variables', | |
\ 'f:functions', | |
\ 'a:arrays', | |
\ 's:strings', | |
\ 'r:string' | |
\ ]} | |
"}}} | |
" | |
"Section: CSS {{{ | |
let g:tagbar_type_css = { | |
\ 'ctagstype' : 'Css', | |
\ 'kinds' : [ | |
\ 'c:classes', | |
\ 's:selectors', | |
\ 'i:identities' | |
\ ]} | |
"}}} | |
"Section: Markdown {{{ | |
let g:tagbar_type_markdown = { | |
\ 'ctagstype' : 'markdown', | |
\ 'kinds' : [ | |
\ 'h:Heading_L1', | |
\ 'i:Heading_L2', | |
\ 'k:Heading_L3' | |
\ ]} | |
"}}} | |
"Section: R {{{ | |
let g:tagbar_type_r = { | |
\ 'ctagstype' : 'r', | |
\ 'kinds' : [ | |
\ 'f:Functions', | |
\ 'g:GlobalVariables', | |
\ 'v:FunctionVariables' | |
\ ]} | |
"}}} | |
"Section: Ruby {{{ | |
let g:tagbar_type_ruby = { | |
\ 'ctagstype' : 'ruby', | |
\ 'kinds' : [ | |
\ 'm:modules', | |
\ 'c:classes', | |
\ 'd:describes', | |
\ 'C:contexts', | |
\ 'f:methods', | |
\ 'F:singleton methods' | |
\ ]} | |
"}}} | |
"Section: Snippets {{{ | |
let g:tagbar_type_snippets = { | |
\ 'ctagstype' : 'snippets', | |
\ 'kinds' : [ | |
\ 's:snippets', | |
\ ]} | |
"}}} | |
"}}} | |
"Plugin: ultisnip {{{ | |
let g:UltiSnipsExpandTrigger="<F12>" | |
"let g:UltiSnipsJumpForwardTrigger="<c-b>" | |
"let g:UltiSnipsJumpBackwardTrigger="<c-z>" | |
" If you want :UltiSnipsEdit to split your window. | |
"let g:UltiSnipsEditSplit="vertical" | |
"}}} | |
"Plugin: tmuxline {{{ | |
"for manual setting of Tmuxline theme | |
let g:airline#extensions#tmuxline#enabled=0 | |
let g:tmuxline_preset = 'full' | |
let g:tmuxline_theme = 'icebert' | |
let g:vim_statusline_3=1 | |
"}}} | |
"Plugin: untotree {{{ | |
"persistent undotree repository | |
"(소스내에 이 부분을 적용하는게 보이지 않는다:2014-8-19) | |
if has("persistent_undo") | |
set undodir='~/.vim/undodir/' | |
set undofile | |
endif | |
"}}} | |
"Plugin: vim-gist {{{ | |
let g:gist_clip_command = 'pbcopy' | |
let g:gist_detect_filetype = 1 | |
let g:gist_open_browser_after_post = 1 | |
let g:gist_show_privates = 1 | |
let g:gist_post_private = 1 | |
let g:gist_get_multiplefile = 1 | |
" }}} | |
"Plugin: python-mode {{{ | |
" Activate rope | |
" K Show python docs | |
" <Ctrl-Space> Rope autocomplete | |
" <Ctrl-c>g Rope goto definition | |
" <Ctrl-c>d Rope show documentation | |
" <Ctrl-c>f Rope find occurrences | |
" <Leader>b Set, unset breakpoint (g:pymode_breakpoint enabled) | |
" [[ Jump on previous class or function (normal, visual, operator modes) | |
" ]] Jump on next class or function (normal, visual, operator modes) | |
" [M Jump on previous class or method (normal, visual, operator modes) | |
" ]M Jump on next class or method (normal, visual, operator modes) | |
let g:pymode_rope = 0 | |
" 경고 끔 | |
let g:pymode_warnings = 0 | |
" Documentation | |
let g:pymode_doc = 1 | |
let g:pymode_doc_key = 'K' | |
"Linting | |
"let g:pymode_lint = 1 | |
"let g:pymode_lint_checker = "pyflakes,pep8" | |
" Auto check on save | |
"let g:pymode_lint_write = 1 | |
" Support virtualenv | |
let g:pymode_virtualenv = 1 | |
" Enable breakpoints plugin | |
let g:pymode_breakpoint = 1 | |
let g:pymode_breakpoint_key = '<leader>b' | |
" syntax highlighting | |
"let g:pymode_syntax = 0 | |
"let g:pymode_syntax_all = 0 | |
"let g:pymode_syntax_indent_errors = g:pymode_syntax_all | |
"let g:pymode_syntax_space_errors = g:pymode_syntax_all | |
let g:syntastic_python_checker_args='--ignore=E501,E225,E265' | |
" Don't autofold code | |
let g:pymode_folding = 0 | |
" Override go-to.definition key shortcut to Ctrl-] | |
let g:pymode_rope_goto_definition_bind = "<C-]>" | |
" | |
" Override run current python file key shortcut to Ctrl-Shift-e | |
"let g:pymode_run_bind = "<C-S-e>" | |
" Override view python doc key shortcut to Ctrl-Shift-d | |
"let g:pymode_doc_bind = "<C-S-d>"" | |
let g:pymode_trim_whitespaces = 1 | |
let g:pymode_options_max_line_length = 130 | |
" }}} | |
"Plugin: vim-markdown (markdown 타입은 vim-pandoc으로 처리중) {{{ | |
let g:vim_markdown_folding_disabled=1 | |
let g:vim_markdown_emphasis_multiline=0 | |
let g:vim_markdown_conceal = 0 "이미지 태그 라인이 보이지 않는 것을 해결 | |
" }}} | |
"Plugin: emmet {{{ | |
" 확장단축기: <C-y>, | |
" let g:user_emmet_mode='a' | |
" let g:user_emmet_install_global = 1 | |
" augroup emmet | |
" au! | |
" autocmd FileType html,css,go EmmetInstall | |
" "autocmd FileType * EmmetInstall | |
" augroup END | |
" let g:user_emmet_leader_key='<C-y>' | |
"let g:user_emmet_settings = webapi#json#decode(join(readfile(expand('~/.vim/snippets/emmet.json')), "\n")) | |
" }}} | |
"Plugin: vim-table-mode {{{ | |
let g:table_mode_separator='|' | |
let g:table_mode_align_char=':' | |
let g:table_mode_corner_corner='+' | |
nnoremap <buffer> <silent> <leader>tm :TableModeToggle<cr> | |
"block을 잡은후 <leader>tt --> Tableize | |
"다른 구분자 적용 --> :Tableize/; ';'이 구분자 | |
"+-----------------------------+-----------------------------------+ | |
"| g:table_mode_corner_corner='+' 로 설정해야 테두리가 제대로 나옴 | | |
"+-----------------------------+-----------------------------------+ | |
" }}} | |
"Plugin: vim-note (obsoleted) {{{ | |
" let g:notes_suffix = '.note' | |
" let g:notes_directories = ['~/Documents/vim-notes'] | |
" let g:notes_markdown_program='/usr/local/bin/pandoc' | |
"}}} | |
"Plugin: vimwiki {{{ | |
"주의: vimwiki/plugin/vimwiki.vim 350line ==> let s:vimwiki_defaults.syntax = 'markdown' | |
" augroup mediawiki | |
" autocmd! | |
" " Enable folding based on ==sections== | |
" au BufRead,BufNewFile *.wiki setlocal foldmethod=syntax | |
" au BufRead,BufNewFile *.wiki setlocal foldexpr=getline(v:lnum)=~'^\\(=\\+\\)[^=]\\+\\1\\(\\s*<!--.*-->\\)\\=\\s*$'?\">\".(len(matchstr(getline(v:lnum),'^=\\+'))-1):\"=\" | |
" au BufRead,BufNewFile *.wiki setlocal fdm=expr | |
" au BufRead,BufNewFile *.wiki setlocal matchpairs+=<:> | |
" au BufRead,BufNewFile *.wiki setlocal comments=n:#,n:*,n:\:,s:{\|,m:\|,ex:\|} | |
" au BufRead,BufNewFile *.wiki setlocal formatoptions+=roq | |
" | |
" " Insert a matching = automatically while starting a new header. | |
" autocmd FileType mediawiki inoremap <buffer> <silent> = <C-R>=(getline('.')==''\|\|getline('.')=~'^=\+$')?"==\<Lt>Left>":"="<cr> | |
" augroup END | |
"}}} | |
"Plugin: vimshell {{{ | |
function! LaunchVIMShell() | |
cd %:p:h | |
execute ':below new' | |
set noautochdir | |
execute ':resize 5' | |
execute ':VimShell' | |
set autochdir | |
endfunction | |
let g:vimshell_force_overwrite_statusline=1 | |
let g:vimshell_user_prompt = 'fnamemodify(getcwd(), ":~")' | |
let g:vimshell_prompt = '$ ' | |
let g:vimshell_use_terminal_command='bash' | |
augroup vimshell | |
autocmd! | |
nnoremap <leader>sh :call LaunchVIMShell()<cr> | |
"nnoremap <space>bash :VimShellInteractive --split='below|resize 5' bash | |
augroup END | |
"}}} | |
"Plugin: Tabularize {{{ | |
":Tabularize /패턴 ==> 패턴을 기준으로해서 컬럼폭을 맞춤 | |
augroup tabularize | |
autocmd! | |
nnoremap <Leader>a= :Tabularize /= | |
nnoremap <Leader>a: :Tabularize /: | |
nnoremap <Leader>a:: :Tabularize /:\zs | |
nnoremap <Leader>a, :Tabularize /, | |
nnoremap <Leader>a<Bar> :Tabularize / | |
augroup END | |
"}}} | |
"Plugin: fugitive {{{ | |
augroup fugitive | |
autocmd! | |
nnoremap <leader>gs :Gstatus | |
nnoremap <leader>gd :Gdiff | |
nnoremap <leader>gc :Gcommit | |
nnoremap <leader>gb :Gblame | |
nnoremap <leader>gl :Glog | |
nnoremap <leader>gp :Git push | |
augroup END | |
"}}} | |
"Plugin: easymotion {{{ | |
if exists('g:EasyMotion_loaded') | |
augroup easymotion | |
autocmd! | |
map / <Plug>(easymotion-sn) | |
omap / <Plug>(easymotion-tn) | |
map n <Plug>(easymotion-next) | |
map N <Plug>(easymotion-prev) | |
augroup END | |
endif | |
"}}} | |
"Plugin: pebble-vim-syntax {{{ | |
"특정 위치에서의 C 소스는 페블어플리케이션으로 인식하게함 | |
augroup pebble | |
"autocmd! | |
"autocmd FileType C set syntax=pebble | |
"autocmd Filetype C set makeprg=bash\ --init-file\ ~/.shell_prompt.sh\ -c\ 'cd\ ..\ &&\ pebble\ build' | |
"autocmd Filetype C set errorformat=../src/%f:%l:%c:\ %m | |
"autocmd Filetype C nmap <leader>b :make!<cr><cr>:cw<cr> | |
"autocmd Filetype C nmap <F4> :cw<cr> | |
autocmd BufNewFile,BufRead ~/Develops/pebble.applications/*.{c,h} set syntax=pebble | |
"autocmd BufNewFile,BufRead ~/Develops/pebble.applications/*.{c,h} set makeprg=bash\ --init-file\ ~/.shell_prompt.sh\ -c\ 'cd\ ..\ &&\ pebble\ build' | |
autocmd BufNewFile,BufRead ~/Develops/pebble.applications/*.{c,h} set errorformat=../src/c/%f:%l:%c:\ %m | |
"autocmd BufNewFile,BufRead ~/Develops/pebble.applications/*.{c,h} nmap <leader>b :make!<cr><cr>:cw<cr> | |
"autocmd BufNewFile,BufRead ~/Develops/pebble.applications/*.{c,h} nmap <F4> :cw<cr> | |
autocmd BufWritePost ~/Develops/pebble.applications/*.{c,h} *.c,*.h silent! !ctags --fields=+l --C-kinds=+p -R % 2> /dev/null & | |
augroup END | |
"}}} | |
"Plugin: vim-go {{{ | |
let g:go_auto_type_info=1 | |
let g:go_play_open_browser = 1 | |
augroup filetype_go | |
autocmd! | |
"타입정보 자동보이기를 수동으로 보일경우 | |
"au FileType go nmap <leader>i <Plug>(go-info) | |
"문서열기 gd:수평분할, gv:수직분할, gb: 브라우저에서 열기 | |
" au FileType go nmap <Leader>gd <Plug>(go-doc) | |
" au FileType go nmap <Leader>gv <Plug>(go-doc-vertical) | |
" au FileType go nmap <Leader>gb <Plug>(go-doc-browser) | |
"정의된 소스 열기 ds:수평, dv:수직, dt:탭으로 열기 | |
" au FileType go nmap <Leader>ds <Plug>(go-def-split) | |
" au FileType go nmap <Leader>dv <Plug>(go-def-vertical) | |
" au FileType go nmap <Leader>dt <Plug>(go-def-tab) | |
"r: 실행, b:빌드, t:CtrlP를 타입으로 열기 | |
" au FileType go nmap <leader>r <Plug>(go-run) | |
" au FileType go nmap <leader>b <Plug>(go-build) | |
" au FileType go nmap <leader>t :CtrlPTag<cr> | |
" "au FileType go nmap <leader>t <Plug>(go-test) | |
" au FileType go nmap <leader>c <Plug>(go-coverage) | |
" 파일저장후에 항상 ctags 업데이트 (~/.ctags의 --languages 설정에 맞춘것임. 경고를 보이지 않게했음<-- 주의 ) | |
au BufWritePost *.go silent! !gotags -R -sort -silent ./ > ./tags & | |
"[[몇가지 자동완성]] | |
"현재라인을 주석처리하기 | |
autocmd FileType go nnoremap <buffer> <localleader>c I//<esc> | |
"자주쓰이는 snippets | |
autocmd FileType go inoremap <buffer> \|pack package main<cr> | |
autocmd FileType go inoremap <buffer> \|main func main() {<cr><cr>}<esc>ki<tab> | |
autocmd FileType go inoremap <buffer> \|{ {<cr><cr>}<esc>ki<tab> | |
autocmd FileType go inoremap <buffer> \|err err != nil {<cr><cr>}<esc>ki<tab> | |
autocmd FileType go inoremap <buffer> \|im import (<cr>"fmt"<cr><cr>)<esc>ki<tab> | |
"autocmd FileType go nnoremap <buffer> <localleader>C I/* <esc>$a */<esc> | |
"autocmd FileType go vnoremap <buffer> <localleader>c <esc>a*/<esc>I/*<esc>lel | |
"tool paths | |
"let g:go_bin_path = expand("~/.vim-go") | |
"let g:go_gocode_bin="~/your/custom/gocode/path" | |
"let g:go_goimports_bin="~/your/custom/goimports/path" | |
"let g:go_godef_bin="~/your/custom/godef/path" | |
"let g:go_oracle_bin="~/your/custom/godef/path" | |
"let g:go_golint_bin="~/your/custom/golint/path" | |
"let g:go_errcheck_bin="~/your/custom/errcheck/path" | |
augroup END | |
"}}} | |
"Plugin: vimrepress (인증문제때문에 안쓰고있음) {{{ | |
"}}} | |
"Plugin: rainbow_parenthesis {{{ | |
"wiki, markdown의 '[]' 문자를 해제해버리므로 (conceallevel=0) 무조건 enable 시키면 곤란하다 | |
augroup rainbow | |
autocmd! | |
au VimEnter *.go,*.sh,*.c RainbowParenthesesToggle | |
au Syntax *.go,*.sh,*.c RainbowParenthesesLoadRound | |
au Syntax *.go,*.sh,.c RainbowParenthesesLoadSquare | |
au Syntax *.go,*.sh,.c RainbowParenthesesLoadBraces | |
au Syntax *.go,*.sh,.c RainbowParenthesesLoadChevrons | |
augroup END | |
"}}} | |
"Plugin: UndoTree {{{ | |
augroup UndoTree | |
autocmd! | |
map <leader>u :UndotreeToggle<cr> | |
augroup END | |
"}}} | |
"Plugin: eregex (easymotion과 충돌하기 때문에 해결방법을 찾을 때까지 disable ) {{{ | |
"let g:eregex_default_enable = 0 | |
"nnoremap <leader>/ :call eregex#toggle()<cr> | |
""}}} | |
"Plugin: xterm-color-table {{{ | |
"comand: XtermColorTable | |
"}}} | |
"Plugin: limelight {{{ | |
" Color name (:help cterm-colors) or ANSI code | |
let g:limelight_conceal_ctermfg = 0 | |
" Color name (:help gui-colors) or RGB color | |
let g:limelight_conceal_guifg = '#777777' | |
" Default: 0.5 | |
let g:limelight_default_coefficient = 0.5 | |
nnoremap <silent><F11> :Limelight!!<cr> | |
"if exists(':Limelight') | |
" nnoremap <silent><F11> :Limelight!!<cr> | |
"endif | |
"}}} | |
"Plugin: vim-choosewin {{{ | |
"keymap '=' | |
let g:choosewin_overlay_enable = 1 | |
let g:choosewin_overlay_clear_multibyte = 1 | |
let g:choosewin_blink_on_land = 0 " dont' blink at land | |
let g:choosewin_statusline_replace = 0 " don't replace statusline | |
let g:choosewin_tabline_replace = 0 " don't replace tabline | |
nmap - <Plug>(choosewin) | |
nmap = <Plug>(choosewin-swap) | |
" tmux like overlay color | |
let g:choosewin_color_overlay = { | |
\ 'gui': ['DodgerBlue3', 'DodgerBlue3' ], | |
\ 'cterm': [ 125, 125 ] | |
\ } | |
let g:choosewin_color_overlay_current = { | |
\ 'gui': ['firebrick1', 'firebrick1' ], | |
\ 'cterm': [ 124, 124 ] | |
\ } | |
"}}} | |
"Plugin: markology {{{ | |
"Section: characters for marking {{{ | |
"- h: Help, m: Non-modifiable, p: Preview, q: Quickfix, r: Readonly | |
"m+: add, m-:delete, m<space>:toggle, m,:toggle, | |
"m[/m]: jump previous/next, | |
"m{/m}: jump lexicographically | |
"m?: display all marks | |
"m~: quickfix window | |
let g:markology_ignore_type="" | |
let g:markology_include="23456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | |
let g:markology_hlline_lower=1 "highlight marked line | |
let g:markology_hlline_upper=1 | |
let g:markology_hlline_other=0 | |
"}}} | |
"Section: Color Sheme {{{ | |
highlight MarkologyHLl guifg=red guibg=green | |
"highlight MarkologyHLu guifg=red guibg=green | |
"highlight MarkologyHLo guifg=red guibg=green | |
"highlight MarkologyHLm guifg=red guibg=green | |
"highlight MarkologyHLLine guifg=red guibg=green | |
"}}} | |
"Section: Key Remapping instead of 'm' {{{ | |
"nmap <silent> ;0 <Plug>MarkologyEnable | |
"nmap <silent> ;1 <Plug>MarkologyDisable | |
"nmap <silent> ;! <Plug>MarkologyToggle | |
"nmap <silent> ;, <Plug>MarkologyPlaceMarkToggle | |
"nmap <silent> ;+ <Plug>MarkologyPlaceMark | |
"nmap <silent> ;- <Plug>MarkologyClearMark | |
"nmap <silent> ;_ <Plug>MarkologyClearAll | |
"nmap <silent> ;] <Plug>MarkologyNextLocalMarkPos | |
"nmap <silent> ;[ <Plug>MarkologyPrevLocalMarkPos | |
"nmap <silent> ;} <Plug>MarkologyNextLocalMarkByAlpha | |
"nmap <silent> ;{ <Plug>MarkologyPrevLocalMarkByAlpha | |
"nmap <silent> ;? <Plug>MarkologyLocationList | |
"nmap <silent> ;~ <Plug>MarkologyQuickFix | |
"}}} | |
"}}} | |
"Plugin: Stringify {{{ | |
"map <leader>g :call Stringify()<CR> | |
"}}} | |
"Plugin: vim-airline-todo {{{ | |
" let g:todo#directory = "/Users/andrwj/.vim/todo" | |
" let g:todo#remind = "TODO" | |
" let g:todo#recurse =1 | |
" let g:todo#suffix = "md" | |
" "nnoremap <leader>t :NERDTree ~/.vim/todo/<cr> | |
"}}} | |
"Plugin: calendar {{{ | |
let g:calendar_google_calendar = 1 | |
let g:calendar_google_task = 1 | |
"}}} | |
"Plugin: Goyo {{{ | |
nnoremap <silent> <leader>z :Goyo<cr> | |
let g:goyo_width = 90 | |
let g:goyo_margin_top = 3 | |
let g:goyo_margin_bottom = 3 | |
let g:goyo_linenr = 0 | |
"}}} | |
"Plugin: vim-gtfo {{{ | |
"got - terminal | |
"gof - finder | |
"}}} | |
"Plugin: airlineish (airline status라인을 모드에 따라 바꿔줌) {{{ | |
let g:airline_theme='airlineish' | |
"}}} | |
"Plugin: unstack {{{ | |
"supported language: Python, Ruby, C#, Perl, Go, Node.js, Erlang | |
let g:unstack_mapkey='<F10>' | |
"let g:unstack_layout = "portrait" | |
"}}} | |
"Plugin: colorscheme-utility {{{ | |
nnoremap <leader><leader>a " Adds the current colorscheme to favorites | |
nnoremap <leader><leader>A " Removes the current colorscheme from favorites | |
nnoremap <leader><leader>f " Goes to next colorscheme in filetype specific favorites | |
nnoremap <leader><leader>F " Goes to previous colorscheme in filetype specific favorites | |
nnoremap <leader><leader>g " Goes to next colorscheme in global favorites | |
nnoremap <leader><leader>G " Goes to previous colorscheme in global favorites | |
nnoremap <leader><leader>n " Goes to next colorscheme in all colors | |
nnoremap <leader><leader>N " Goes to previous colorscheme in all colors | |
nnoremap <leader><leader>t " Adds the current font to favorites | |
nnoremap <leader><leader>T " Removes the current font from favorites | |
nnoremap <leader><leader>e " Goes to the next font in filetype specific favorites | |
nnoremap <leader><leader>E " Goes to the previous font in filetype specific favorites | |
nnoremap <leader><leader>r " Goes to the next font in global favorites | |
nnoremap <leader><leader>R " Goes to the previous font in global favorites | |
nnoremap <leader><leader>q " Views all favorites | |
"}}} | |
"Plugin: vim-move (move up/down visual blocked area) {{{ | |
let g:move_key_modifier = 'C' | |
"}}} | |
"Plugin: YouCompleteMe {{{ | |
let g:ycm_global_ycm_extra_conf = "~/.vim/ycm_extra_conf.py" | |
let g:ycm_confirm_extra_conf = 0 | |
let g:ycm_min_num_of_chars_for_completion = 2 | |
let g:ycm_auto_trigger = 1 | |
"let g:ycm_always_populate_location_list = 1 | |
let g:ycm_collect_identifiers_from_comments_and_strings = 1 | |
let g:ycm_collect_identifiers_from_tags_files = 1 | |
let g:ycm_seed_identifiers_with_syntax = 1 | |
let g:ycm_show_diagnostics_ui = 1 | |
let g:ycm_add_preview_to_completeopt = 1 | |
let g:ycm_autoclose_preview_window_after_completion = 1 | |
let g:ycm_key_invoke_completion = '<C-Space>' | |
let g:ycm_filepath_completion_use_working_dir = 1 | |
let g:ycm_path_to_python_interpreter = '/usr/bin/python2.7' | |
let g:ycm_filetype_whitelist = { '*': 1 } | |
let g:ycm_filetype_blacklist = { | |
\ 'tagbar' : 1, | |
\ 'qf' : 1, | |
\ 'notes' : 1, | |
\ 'markdown' : 1, | |
\ 'unite' : 1, | |
\ 'text' : 1, | |
\ 'vimwiki' : 1, | |
\ 'pandoc' : 1, | |
\ 'infolog' : 1, | |
\ 'mail' : 1 | |
\} | |
let g:ycm_semantic_triggers = { | |
\ 'c' : ['->', '.'], | |
\ 'objc' : ['->', '.'], | |
\ 'ocaml' : ['.', '#'], | |
\ 'cpp,objcpp' : ['->', '.', '::'], | |
\ 'perl' : ['->'], | |
\ 'php' : ['->', '::'], | |
\ 'cs,java,javascript,d,python,perl6,scala,vb,elixir,go' : ['.'], | |
\ 'vim' : ['re![_a-zA-Z]+[_\w]*\.'], | |
\ 'ruby' : ['.', '::'], | |
\ 'lua' : ['.', ':'], | |
\ 'erlang' : [':'], | |
\ } | |
"CTRL-O for jump back | |
nnoremap <leader>jd :YcmCompleter GoTo<cr> | |
"}}} | |
"Plugin: GitGutter {{{ | |
let g:gitgutter_eager = 0 | |
let g:gitgutter_realtime = 0 | |
"}}} | |
"Plugin: javascript-syntax-library {{{ | |
"let g:used_javascript_libs = 'jquery,angularjs,extjs' | |
"autocmd BufReadPre *.js let b:javascript_lib_use_jquery = 1 | |
"autocmd BufReadPre *.js let b:javascript_lib_use_underscore = 1 | |
"autocmd BufReadPre *.js let b:javascript_lib_use_backbone = 1 | |
"autocmd BufReadPre *.js let b:javascript_lib_use_prelude = 0 | |
"autocmd BufReadPre *.js let b:javascript_lib_use_angularjs = 0 | |
"}}} | |
"Plugin: Startify {{{ | |
" let g:startify_disable_at_vimenter = 0 | |
" let g:startify_custom_header = map(split(system('fortune ~/.fortunes/|cowsay'), '\n'), '" ". v:val') + ['',''] | |
" let g:startify_skiplist = [ | |
" \ 'COMMIT_EDITMSG', | |
" \ '\.DS_Store' | |
" \ ] | |
" "파일지정없이 vim을 열었을 경우, 자동으로 Starify를 동작시킴 | |
" autocmd StdinReadPre * let s:std_in=1 | |
" autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | Startify | endif | |
" autocmd User Startified call AirlineRefresh | |
" nnoremap <silent> <C-k><C-l> :Startify<cr> | |
""}}} | |
"Plugin: tern {{{ | |
let g:tern_map_keys = 1 | |
let g:tern_show_argument_hints = 'on_hold' | |
let g:tern_show_signature_in_pum = 1 | |
"}}} | |
"Plugin: pandoc {{{ | |
augroup pandoc | |
autocmd! | |
autocmd FileType markdown nnoremap <leader>v :!open -a Marked.app %<cr><cr> | |
"autocmd FileType markdown set dictionary+=$HOME/.vim/dicts/corpus.dict | |
augroup END | |
"}}} | |
"Plugin: ctrlp {{{ | |
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux | |
let g:ctrlp_show_hidden = 1 | |
let g:ctrlp_regexp = 1 | |
let g:ctrlp_use_caching = 1 | |
let g:ctrlp_clear_cache_on_exit = 1 | |
let g:ctrlp_root_markers = ['.git'] | |
let g:ctrlp_switch_buffer = 'et' | |
let g:ctrlp_working_path_mode='c' | |
"t - in a new tab. | |
"h - in a new horizontal split. | |
"v - in a new vertical split. | |
"r - in the current window. | |
let g:ctrlp_follow_symlinks = 1 | |
let g:ctrlp_open_new_file = 'v' | |
let g:ctrlp_map = '<c-p>' | |
"let g:ctrlp_cmd = 'CtrlPMixed' | |
let g:ctrlp_cmd = 'CtrlPLastMode' | |
let g:ctrlp_extensions = ['line', 'funky', 'tag', 'buffertag', 'dir', 'cmdline', 'yankring', 'modified'] | |
" if executable('ag') | |
" let g:ctrlp_user_command = "ag %s -l --nocolor" | |
" endif | |
" let g:ctrlp_user_command = { | |
" \ 'types': { | |
" \ 1: ['.git', 'cd %s && git ls-files . -co --exclude-standard', 'find %s -type f'], | |
" \ }, | |
" \ 'fallback': 'find %s -type f' | |
" \ } | |
let g:ctrlp_custom_ignore = { | |
\ 'dir': '\v[\/]\.(git|hg|svn)$', | |
\ 'file': '\v\.(swap)$' | |
\ } | |
"let g:ctrlp_funky_matchtype = 'path' | |
let g:ctrlp_funky_syntax_highlight = 1 | |
" CtrlP auto cache clearing. | |
" ---------------------------------------------------------------------------- | |
function! SetupCtrlP() | |
if exists("g:loaded_ctrlp") && g:loaded_ctrlp | |
augroup CtrlPExtension | |
autocmd! | |
autocmd FocusGained * CtrlPClearCache | |
autocmd BufWritePost * CtrlPClearCache | |
augroup END | |
endif | |
endfunction | |
if has("autocmd") | |
autocmd VimEnter * :call SetupCtrlP() | |
endif | |
" Use this to customize the mappings inside CtrlP's prompt to your liking. You | |
" only need to keep the lines that you've changed the values (inside []): > | |
" let g:ctrlp_prompt_mappings = { | |
" \ 'PrtBS()': ['<bs>', '<c-]>'], | |
" \ 'PrtDelete()': ['<del>'], | |
" \ 'PrtDeleteWord()': ['<c-w>'], | |
" \ 'PrtClear()': ['<c-u>'], | |
" \ 'PrtSelectMove("j")': ['<c-j>', '<down>'], | |
" \ 'PrtSelectMove("k")': ['<c-k>', '<up>'], | |
" \ 'PrtSelectMove("t")': ['<Home>', '<kHome>'], | |
" \ 'PrtSelectMove("b")': ['<End>', '<kEnd>'], | |
" \ 'PrtSelectMove("u")': ['<PageUp>', '<kPageUp>'], | |
" \ 'PrtSelectMove("d")': ['<PageDown>', '<kPageDown>'], | |
" \ 'PrtHistory(-1)': ['<c-n>'], | |
" \ 'PrtHistory(1)': ['<c-p>'], | |
" \ 'AcceptSelection("e")': ['<cr>', '<2-LeftMouse>'], | |
" \ 'AcceptSelection("h")': ['<c-x>', '<c-cr>', '<c-s>'], | |
" \ 'AcceptSelection("t")': ['<c-t>'], | |
" \ 'AcceptSelection("v")': ['<c-v>', '<RightMouse>'], | |
" \ 'ToggleFocus()': ['<s-tab>'], | |
" \ 'ToggleRegex()': ['<c-r>'], | |
" \ 'ToggleByFname()': ['<c-d>'], | |
" \ 'ToggleType(1)': ['<c-f>', '<c-up>'], | |
" \ 'ToggleType(-1)': ['<c-b>', '<c-down>'], | |
" \ 'PrtExpandDir()': ['<tab>'], | |
" \ 'PrtInsert("c")': ['<MiddleMouse>', '<insert>'], | |
" \ 'PrtInsert()': ['<c-\>'], | |
" \ 'PrtCurStart()': ['<c-a>'], | |
" \ 'PrtCurEnd()': ['<c-e>'], | |
" \ 'PrtCurLeft()': ['<c-h>', '<left>', '<c-^>'], | |
" \ 'PrtCurRight()': ['<c-l>', '<right>'], | |
" \ 'PrtClearCache()': ['<F5>'], | |
" \ 'PrtDeleteEnt()': ['<F7>'], | |
" \ 'CreateNewFile()': ['<c-y>'], | |
" \ 'MarkToOpen()': ['<c-z>'], | |
" \ 'OpenMulti()': ['<c-o>'], | |
" \ 'PrtExit()': ['<esc>', '<c-c>', '<c-g>'], | |
" \ } | |
" }}} | |
"Plugin: tcomment {{{ | |
" A secondary set of key maps is defined for normal and insert mode: | |
" <Leader>__ :: :TComment | |
" <Leader>_p :: Comment the current inner paragraph | |
" <Leader>_<space> :: :TComment <QUERY COMMENT-BEGIN ?COMMENT-END> | |
" <Leader>_i :: :TCommentInline | |
" <Leader>_r :: :TCommentRight | |
" <Leader>_b :: :TCommentBlock | |
" <Leader>_a :: :TCommentAs <QUERY COMMENT TYPE> | |
" <Leader>_n :: :TCommentAs &filetype <QUERY COUNT> | |
" <Leader>_s :: :TCommentAs &filetype_<QUERY COMMENT SUBTYPE> | |
" | |
" ... and for select mode: | |
" | |
" <Leader>__ :: :TComment | |
" <Leader>_i :: :TCommentInline | |
"}}} | |
"Plugin: dracula {{{ | |
"https://draculatheme.com/vim/ | |
color dracula | |
"}}} | |
"Plugin: 'nathanaelkane/vim-indent-guides' {{{ | |
"default indent toggle key: <leader>ig | |
set background=dark | |
let g:indent_guides_auto_colors = 1 | |
let g:indent_guides_start_level = 2 | |
let g:indent_guides_guide_size = 1 | |
let g:indent_guides_enable_on_vim_startup = 0 | |
" autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=black ctermbg=3 | |
" autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=darkgrey ctermbg=4 | |
"}}} | |
"Plugin: 'Shougo/vimfiler.vim' {{{ | |
nnoremap <silent> <C-k><C-b> :VimFilerExplorer<cr> | |
let g:vimfiler_as_default_explorer = 1 | |
"}}} | |
" | |
"Plugin: 'emmet' {{{ | |
"enable just for HTML/CSS | |
let g:user_emmet_install_global = 0 | |
autocmd FileType html,css,md EmmetInstall | |
"remap | |
let g:user_emmet_leader_key='<C-.>' | |
" let g:user_emmet_mode='n' "only enable normal mode functions. | |
" let g:user_emmet_mode='inv' "enable all functions, which is equal to | |
" let g:user_emmet_mode='a' "enable all function in all mode. | |
"}}} | |
"Plugin: cmdpalette {{{ | |
nnoremap <silent> <C-k><C-p> :CtrlPCmdPalette<cr> | |
"}}} | |
"Plugin: 'terryma/vim-multiple-cursors' {{{ | |
let g:multi_cursor_use_default_mapping=1 | |
let g:multi_cursor_next_key='<C-d>' | |
let g:multi_cursor_prev_key='<C-p>' | |
let g:multi_cursor_skip_key='<C-x>' | |
let g:multi_cursor_quit_key='<Esc>' | |
" Default highlighting (see help :highlight and help :highlight-link) | |
" highlight multiple_cursors_cursor term=reverse cterm=reverse gui=reverse | |
" highlight link multiple_cursors_visual Visual | |
"}}} | |
"Plugin: syntastic {{{ | |
set statusline+=%#warningmsg# | |
"set statusline+=%{SyntasticStatuslineFlag()} | |
set statusline+=%* | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_auto_loc_list = 1 | |
let g:syntastic_check_on_open = 1 | |
let g:syntastic_check_on_wq = 0 | |
"}}} | |
"Plugin: syntastic {{{ | |
let g:calendar_google_calendar = 1 | |
let g:calendar_google_task = 1 | |
" :Calendar 2017 9 | |
" :Calendar -view=year | |
" :Calendar -view=year -split=vertical -width=27 | |
" :Calendar -view=year -split=horizontal -position=below -height=12 | |
" :Calendar -view=clock | |
" :Calendar -first_day=monday | |
" press E for event list | |
" press T for Goggle task | |
"}}} | |
"Plugin: html5 {{{ | |
"Disable event-handler attributes support: | |
let g:html5_event_handler_attributes_complete = 0 | |
"Disable RDFa attributes support: | |
let g:html5_rdfa_attributes_complete = 1 | |
"Disable microdata attributes support: | |
let g:html5_microdata_attributes_complete = 1 | |
"Disable WAI-ARIA attribute support: | |
let g:html5_aria_attributes_complete = 1 | |
"}}} | |
"Plugin: Editing for Wrapped selection {{{ | |
augroup VisualEditing | |
vmap <Leader>tm <Esc>:call VisualHTMLTagWrap('mark')<CR> | |
vmap <Leader>tn <Esc>:call VisualHTMLTagWrap('note')<CR> | |
vmap <Leader>tw <Esc>:call VisualHTMLTagWrap('words')<CR> | |
vmap <Leader>tu <Esc>:call VisualHTMLTagWrap('u')<CR> | |
vmap <Leader>tub <Esc>:call VisualHTMLTagWrap('ub')<CR> | |
vmap <Leader>tubs <Esc>:call VisualHTMLTagWrap('ubs')<CR> | |
vmap <Leader>trb <Esc>:call VisualHTMLTagWrap('rb')<CR> | |
vmap <Leader>trbs <Esc>:call VisualHTMLTagWrap('rbs')<CR> | |
vmap <Leader>turbs <Esc>:call VisualHTMLTagWrap('urbs')<CR> | |
vmap <Leader>tbs <Esc>:call VisualHTMLTagWrap('bs')<CR> | |
vmap <Leader>tc <Esc>:call VisualHTMLTagWrap('comment')<CR> | |
augroup END | |
function! VisualHTMLTagWrap(tag) | |
"let tag = input("Tag to wrap block: ") | |
if len(a:tag) > 0 | |
normal `> | |
if &selection == 'exclusive' | |
exe "normal i</".a:tag.">" | |
else | |
exe "normal a</".a:tag.">" | |
endif | |
normal `< | |
exe "normal i<".a:tag.">" | |
normal `< | |
endif | |
endfunction | |
"}}} | |
" | |
"Plugin: Super Lisp {{{ | |
let g:slimv_swank_cmd = '!osascript -e "tell application \"iTerm\" to do script \"sbcl --load ~/.vim/bundle/slimv/slime/start-swank.lisp\""' | |
"For Clojure use the g:slimv_swank_clojure option, e.g.: | |
let g:slimv_swank_clojure = '! xterm -e lein swank &' | |
"}}} | |
"Plugin: pluginName {{{ | |
"}}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment