Created
April 15, 2014 10:33
-
-
Save secondarykey/10721369 to your computer and use it in GitHub Desktop.
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
filetype off | |
filetype plugin indent off | |
" Golang Vim | |
set runtimepath+=$GOROOT/misc/vim | |
" Golang gocode | |
exe "set runtimepath+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim") | |
" NeoBundle | |
if has('vim_starting') | |
set runtimepath+=~/.vim/bundle/neobundle.vim/ | |
endif | |
call neobundle#rc(expand('~/.vim/bundle/')) | |
" Let NeoBundle manage NeoBundle | |
NeoBundleFetch 'Shougo/neobundle.vim' | |
" TAB Setting | |
set tabstop=4 | |
set shiftwidth=4 | |
set softtabstop=4 | |
filetype plugin indent on | |
syntax on | |
" Ex mode Tab Setting | |
function! s:SID_PREFIX() | |
return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID_PREFIX$') | |
endfunction | |
function! s:GetBufByte() | |
let byte = line2byte(line('$') + 1) | |
if byte == -1 | |
return 0 | |
else | |
return byte - 1 | |
endif | |
endfunction | |
function! s:my_tabline() | |
let s = '' | |
for i in range(1, tabpagenr('$')) | |
let bufnrs = tabpagebuflist(i) | |
let bufnr = bufnrs[tabpagewinnr(i) - 1] | |
let no = i " display 0-origin tabpagenr. | |
let mod = getbufvar(bufnr, '&modified') ? '!' : ' ' | |
let title = fnamemodify(bufname(bufnr), ':t') | |
let title = '[' . title . ']' | |
let s .= '%'.i.'T' | |
let s .= '%#' . (i == tabpagenr() ?'TabLineSel' : 'TabLine') . '#' | |
let s .= no . ':' . title | |
let s .= mod | |
let s .= '%#TabLineFill# ' | |
endfor | |
let s .= '%#TabLineFill#%T%=%#TabLine#' | |
return s | |
endfunction | |
let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()' | |
set showtabline=2 | |
nnoremap [Tag] <Nop> | |
nmap t [Tag] | |
for n in range(1, 9) | |
execute 'nnoremap <silent> [Tag]'.n ':<C-u>tabnext'.n.'<CR>' | |
endfor | |
map <silent> [Tag]c :tablast <bar> tabnew<CR> | |
map <silent> [Tag]x :tabclose<CR> | |
map <silent> [Tag]n :tabnext<CR> | |
map <silent> [Tag]p :tabprevious<CR> | |
" VimStart with Ex mode | |
autocmd VimEnter * nested if @% == '' && s:GetBufByte() == 0 | Ex | endif | |
" Golang Fmt | |
auto BufWritePre *.go Fmt | |
filetype plugin on | |
NeoBundleCheck | |
NeoBundle 'Shougo/neocomplcache' | |
" Disable AutoComplPop. | |
let g:acp_enableAtStartup = 0 | |
" Use neocomplcache. | |
let g:neocomplcache_enable_at_startup = 1 | |
" Use smartcase. | |
let g:neocomplcache_enable_smart_case = 1 | |
" Set minimum syntax keyword length. | |
let g:neocomplcache_min_syntax_length = 3 | |
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*' | |
" Define dictionary. | |
let g:neocomplcache_dictionary_filetype_lists = { | |
\ 'default' : '' | |
\ } | |
" Plugin key-mappings. | |
inoremap <expr><C-g> neocomplcache#undo_completion() | |
inoremap <expr><C-l> neocomplcache#complete_common_string() | |
" Recommended key-mappings. | |
" <CR>: close popup and save indent. | |
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> | |
function! s:my_cr_function() | |
return neocomplcache#smart_close_popup() . "\<CR>" | |
endfunction | |
" <TAB>: completion. | |
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
" <C-h>, <BS>: close popup and delete backword char. | |
inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>" | |
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>" | |
inoremap <expr><C-y> neocomplcache#close_popup() | |
inoremap <expr><C-e> neocomplcache#cancel_popup() | |
if !exists('g:neocomplcache_omni_patterns') | |
let g:neocomplcache_omni_patterns = {} | |
endif | |
let g:neocomplcache_omni_patterns.go = '\h\w*\.\?' | |
hi Pmenu ctermbg=7 | |
hi PmenuSel ctermbg=4 | |
hi PMenuSbar ctermbg=8 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment