Skip to content

Instantly share code, notes, and snippets.

@float1251
Last active January 2, 2017 10:26
Show Gist options
  • Save float1251/aedd67a6d33f90c0f8b6378363e1ade0 to your computer and use it in GitHub Desktop.
Save float1251/aedd67a6d33f90c0f8b6378363e1ade0 to your computer and use it in GitHub Desktop.
.vimrc
" {{{ dein.vim
if &compatible
set nocompatible
endif
if version < 740
finish
endif
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim
call dein#begin(expand('~/.cache/dein'))
call dein#add('~/.cache/dein/repos/github.com/Shougo/dein.vim')
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/vimproc.vim', {
\ 'build': {
\ 'mac': 'make -f make_mac.mak',
\ 'linux': 'make',
\ 'unix': 'gmake',
\ }
\})
call dein#add('Shougo/neocomplete.vim')
call dein#add('Shougo/vimshell.vim')
call dein#add('Shougo/unite.vim')
call dein#add('fatih/vim-go') " golang plugin
call dein#add('scrooloose/nerdtree') " ファイルツリー
call dein#add('itchyny/lightline.vim') " ステータスラインのカスタマイズ
call dein#add('haya14busa/incsearch.vim') " 単語検索のプラグイン Ex:/\v{word}|{word}
call dein#add('nathanaelkane/vim-indent-guides')
call dein#add('tpope/vim-surround')
call dein#add('mattn/emmet-vim') " htmlの簡易入力記法 <ctrl-y>,で展開
call dein#add('jmcantrell/vim-virtualenv')
call dein#add('mattn/emmet-vim') " htmlの簡易入力記法
call dein#add('davidhalter/jedi-vim') " pythonの補完plugin
call dein#add('justmao945/vim-clang') " c/c++の補完プラグイン
call dein#add('kmnk/vim-unite-svn') " unite.vimでsubversionを扱う
call dein#add('thinca/vim-template') " ファイル作成時に自動でtemplateを挿入したりするplugin
" +pythonじゃないとダメ。install後にserverのbuildが必要
" https://github.com/OmniSharp/omnisharp-vim
call dein#add('OmniSharp/omnisharp-vim', {
\ 'has': has('python')
\ })
call dein#end()
filetype plugin indent on
if dein#check_install()
call dein#install()
endif
" }}}
" {{{ start general settings
" leaderをspaceに変更する
let mapleader = "\<Space>"
" }}}
" {{{ Unite.vim
" 起動時にinsert modeにする
let g:unite_enable_start_insert=1
" 分割の設定
let g:unite_sprit_rule='bottomleft'
let g:unite_source_rec_async_command=['ag', '--follow', '--nocolor', '--nogroup', '--hidden', '-g']
" space*2 でファイル検索
nnoremap <Space><Space> :Unite file_rec/async<CR>
" ,ubでBuffer検索
nnoremap <silent>,ub :Unite buffer<CR>
" file_rec/asyncでcwdからの相対パスで検索を開始するようにする
function! InputRelativePathFromCWD()
let s:cwd = getcwd()
let s:input_var = input('from(' . s:cwd .') : ') "入力を受け取る
call unite#start([['file_rec/async', s:cwd.'/'.s:input_var]]) " file_rec/asyncを実行する
endfunction
nnoremap ,uf :call InputRelativePathFromCWD()<CR>
" }}}
" {{{ VimShell.vim
nnoremap ,vsp :VimShellPop<CR>
" }}}
"{{{ jedi.vim
let g:jedi#show_call_signatures = 0
let g:jedi#popup_on_dot = 0
let g:jedi#popup_select_first = 0
"}}}
" {{{ incsearch.vim
map / <Plug>(incsearch-forward)
map ? <Plug>(incsearch-backward)
map g/ <Plug>(incsearch-stay)
" }}}
" {{{ vim-indent-guides
let g:indent_guides_guide_size = 1 " 色サイズは1
let g:indent_guides_enable_on_vim_startup=1 " 起動時に有効にする
let g:indent_guides_auto_colors=0 " 色は手動で設定
autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=red ctermbg=3
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=green ctermbg=4
" }}}
" {{{ vim-go
" 各種key mappingの設定
au FileType go nmap <Leader>>gr <Plug>(go-run)
au FileType go nmap <Leader>>gb <Plug>(go-build)
au FileType go nmap <Leader>>gt <Plug>(go-test)
au FileType go nmap <Leader>>gc <Plug>(go-coverage)
au FileType go nmap <Leader>>gi :GoImport
au FileType go nmap <Leader>>gd :GoDocBrowser<CR>
au FileType go nmap <Space>gf :GoDef<CR>
au FileType go nmap <S-left> :GoDefPop<CR>
au FileType go nmap <Leader>i <Plug>(go-info)
" gocodeのgocomplete.vimがvim-goのomnifuncを書き換えているのか、正常に動作して
" いないので無理やり書き換え
autocmd BufNewFile,BufRead *.go setlocal omnifunc=go#complete#Complete
" }}}
" {{{ OmniSharp-vim
au FileType cs nmap ,df :OmniSharpCodeFormat
" }}}
" {{{ vim-template
" templateを配置するdirを設定
" 他OSなどでうまく動作していないのでコメントアウト
" g:template_basedir=$HOME/.vim/template/
" }}}
" {{{ neocomplete
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
if !exists('g:neocomplete#sources#omni#input_patterns')
let g:neocomplete#sources#omni#input_patterns = {}
endif
let g:neocomplete#sources#omni#input_patterns.go = '[^.[:digit:] *\t]\.\w*'
autocmd FileType python setlocal omnifunc=jedi#completions
let g:jedi#completions_enabled = 0
let g:jedi#auto_vim_configuration = 0
if !exists('g:neocomplete#force_omni_input_patterns')
let g:neocomplete#force_omni_input_patterns = {}
endif
" let g:neocomplete#force_omni_input_patterns.python = '\%([^. \t]\.\|^\s*@\|^\s*from\s.\+import \|^\s*from \|^\s*import \)\w*'
let g:neocomplete#force_omni_input_patterns.python = '\h\w*\|[^. \t]\.\w*'
" }}}
"{{{ vim-clang
" :h clang.txt
" clangへのpathが通っていること
let g:clang_c_options = '-std=gnu11'
let g:clang_cpp_options = '-std=c++11 -stdlib=libc++'
"}}}
"{{{ virtualenv.vim
let g:virtualenv_directory='/Users/t-iwatani/.pyenv/versions/'
"}}}
" {{{ general settings
" encodingはutf-8
set encoding=utf-8
" タブは半角スペースにする
set expandtab
" 改行時に自動でインデントをかける
set autoindent
" 自動インデント時のspaceは4
set shiftwidth=4
" 行数を表示
set number
" 検索の際のハイライトを消す
nnoremap <ESC><ESC> :nohl<CR>
" colorscheme
colorscheme desert
" tabspaceは4
set ts=4
" カーソルがいる行にラインを表示する
set cursorline
" 100文字目のところで背景色を変更する
if(exists('+colorcolumn'))
set colorcolumn=100
highlight ColorColomn ctermbg=9
endif
" tabの移動
nnoremap <C-tab> :tabn<CR>
" omni補完はS-spaceにする
imap <S-Space> <C-x><C-o>
" grepのpathを設定.
" cygwinのgrepを使用する
if has("win32") || has("win64")
set grepprg=c:/cygwin/bin/grep\ -nH
endif
" un~ファイルを作らないようにする
:set noundofile
"クリップボードを共有する
set clipboard=unnamed
" swapfileは作らない
" 別ディレクトリに格納するようにしてもよいかも
" set directory=$HOME/.swap
set noswapfile
" backupファイルは作らない
set nobackup
" 自動で折り返し改行はしない
set tw=0
" }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment