Created
October 11, 2011 15:33
Revisions
-
rhysd created this gist
Oct 11, 2011 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,373 @@ let mapleader = ',' syntax on "行番号表示 set number "バックアップファイルいらない set nobackup "vi協調モードoff set nocompatible "自動インデント set autoindent "タブが対応する空白の数 set tabstop=4 shiftwidth=4 softtabstop=0 "タブの代わりにスペースを使わない set noexpandtab "長い行でも折り返さない set nowrap "検索が末尾まで進んだら,ファイル先頭につなげる set wrapscan "対応する括弧にわずかの間ジャンプする set showmatch "カーソルが何行何列目にあるか表示する set ruler "最下ウィンドウにステータス行が表示される時 "1: ウィンドウの数が2以上 2:常 set laststatus=2 "モードライン無効化 set modelines=0 "スクロール時の余白確保 set scrolloff=5 "いろいろスマート set smarttab set smartindent "大文字が入っている時のみ大文字小文字を区別 set ignorecase set smartcase "ビープ音OFF set vb t_vb= "ホワイトスペース類を表示する set list set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:% "Boostをpathに追加 set path=.,/usr/include,/opt/local/include,/opt/local/include/gcc46/c++,/opt/local/lib,/Users/rhayasd/programs/**,/Users/rhayasd "起動時のメッセージを消す set shortmess+=I "起動時IMEをOFFにする set iminsert=0 imsearch=0 "IMを使う set noimdisable "コマンドラインでのIM無効化 set noimcmdline "バックスペースでなんでも消せるように set backspace=indent,eol,start "ファイル切替時にファイルを隠す set hidden "日本語ヘルプを優先的に検索 set helplang=ja "OSのクリップボードを使う set clipboard+=unnamed "矩形選択で自由に移動する set virtualedit+=block "改行コードの自動認識 set fileformats=unix,dos,mac "コマンド実行中は再描画しない set lazyredraw "高速ターミナル接続を行う set ttyfast "MacVim Kaoriyaに標準で入っている辞書を無効化 let g:plugin_dicwin_disable = 1 "imsertモードから抜けるときにIMをOFFにする(GUI(MacVim)は自動的にやってくれる "iminsert=2にすると,insertモードに戻ったときに自動的にIMの状態が復元される if !has("gui_running") inoremap <silent> <ESC> <ESC>:set iminsert=0<CR> endif """""""""""""""""""""""""""""""""" " neocomplcacheの設定 " """""""""""""""""""""""""""""""""" "AutoComplPopを無効にする let g:acp_enableAtStartup = 0 "vim起動時に有効化 let g:neocomplcache_enable_at_startup = 1 "smart_caseを有効にする.大文字が入力されるまで大文字小文字の区別をなくす let g:neocomplcache_enable_smart_case = 1 " CamelCase補完有効化 "let g:neocomplcache_enable_camel_case_completion = 1 "_を区切りとした補完を有効にする let g:neocomplcache_enable_underbar_completion = 1 "シンタックスをキャッシュするときの最小文字長を3に let g:neocomplcache_min_syntax_length = 3 "日本語を収集しないようにする if !exists('g:neocomplcache_keyword_patterns') let g:neocomplcache_keyword_patterns = {} endif let g:neocomplcache_keyword_patterns['default'] = '\h\w*' "リスト表示 let g:neocomplcache_max_list = 100 let g:neocomplcache_max_keyword_width = 20 "リストの最大幅を指定 "let g:neocomplcache_max_filename_width = 25 "ctagsへのパス let g:neocomplcache_ctags_program = '/opt/local/bin/ctags' "区切り文字パターンの定義 if !exists('g:neocomplcache_delimiter_patterns') let g:neocomplcache_delimiter_patterns= {} endif let g:neocomplcache_delimiter_patterns.vim = ['#'] let g:neocomplcache_delimiter_patterns.cpp = ['::'] "インクルードパスの指定 let g:neocomplcache_include_paths = { \ 'cpp' : '.,/opt/local/include/gcc46/c++,/opt/local/include,/usr/include', \ 'c' : '.,/usr/include', \ 'ruby' : '.,/opt/local/lib/ruby1.9/1.9.1,/Users/rhayasd/programs', \ 'perl' : '.,/System/Library/Perl,/Users/rhayasd/programs', \ } "インクルード文のパターンを指定 let g:neocomplcache_include_patterns = { \ 'cpp' : '^\s*#\s*include', \ 'ruby' : '^\s*require', \ 'perl' : '^\s*use', \ } "インクルード先のファイル名の解析パターン let g:neocomplcache_include_exprs = { \ 'ruby' : substitute(substitute(v:fname,'::','/','g'),'$','.rb','') \ } if !has("gui_running") "CUIのvimでの補完リストの色を調節する highlight Pmenu ctermbg=8 endif " Enable omni completion. autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType php set omnifunc=phpcomplete#CompletePHP autocmd FileType c set omnifunc=ccomplete#Complete autocmd FileType ruby set omnifunc=rubycomplete#Complete " Enable heavy omni completion. if !exists('g:neocomplcache_omni_patterns') let g:neocomplcache_omni_patterns = {} endif let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\h\w*\|\h\w*::' let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::' let g:neocomplcache_omni_patterns.c = '\%(\.\|->\)\h\w*' let g:neocomplcache_omni_patterns.cpp = '\h\w*\%(\.\|->\)\h\w*\|\h\w*::' "スニペットファイルのパス let g:neocomplcache_snippets_dir = $HOME.'/.vim/bundle/neocomplcache/snippets' """""""""""""""""""""""""""""""""""""""""""" " Unite.vim " """""""""""""""""""""""""""""""""""""""""""" "insertモードをデフォルトに let g:unite_enable_start_insert = 1 """""""""""""""""""""""""""""" " VimShellの設定 " """""""""""""""""""""""""""""" "set VimShellInteractive=bash let g:vimshell_user_prompt = 'fnamemodify(getcwd(), ":~")' let g:vimshell_right_prompt = 'vimshell#vcs#info("(%s)-[%b]", "(%s)-[%b|%a]")' """"""""""""""""""""""""""""""" " vim-quickrunの設定 " """"""""""""""""""""""""""""""" "<Leader>r を使わない let g:quickrun_no_default_key_mappings = 1 " quickrun_configの初期化 if !has("g:quickrun_config") let g:quickrun_config = {} endif "C++: MacPortsのg++ let g:quickrun_config.cpp = { \ 'command' : 'g++-mp-4.6', \ 'cmdopt' : '-std=c++0x -Wall -Wextra -O2 ' \} "ruby1.9.1 let g:quickrun_config.ruby = { \ 'command' : 'ruby1.9' \} "QuickRun 実行時のバッファの開き方 let g:quickrun_config._ = { \ 'outputter' : 'quickfix', \ 'split' : 'rightbelow 10sp' \} """"""""""""""""""""""""""""""""""" " Hier.vim " """"""""""""""""""""""""""""""""""" "CUIだとエラーハイライトが見づらいので修正 if !has("gui_running") highlight Error ctermbg=9 highlight qf_error_ucurl ctermbg=9 let g:hier_highlight_group_qf = "qf_error_ucurl" let g:hier_highlight_group_loc = "qf_error_ucurl" highlight qf_warning_ucurl ctermbg=3 let g:hier_highlight_group_qfw = "qf_warning_ucurl" let g:hier_highlight_group_locw = "qf_warning_ucurl" endif """""""""""""""""""""""""""""""""" " vim-toggle.vim " """""""""""""""""""""""""""""""""" let g:toggle_pairs = { \'and':'or', 'or':'and', \'==':'!=','!=':'==', \'<=':'>=','>=':'<=', \'class':'struct','struct':'class', \'boost':'std','std':'boost', \'top':'right','right':'bottom','bottom':'left','left':'top' \} " \'const&':'&','&':'const&' """""""""""""""""""""""""""""""""""""""""""" " キーマップの設定 " """""""""""""""""""""""""""""""""""""""""""" "insertモードから抜ける inoremap jj <ESC> inoremap <C-j> <ESC> "Esc->Escで検索結果をクリア nnoremap <silent><ESC><ESC> :nohlsearch<CR><ESC> "行頭・行末の移動 nnoremap 1 0 nnoremap 0 ^ nnoremap 9 $ " 空行挿入 nnoremap ; :<C-u>call append(expand('.'), '')<CR>j "ヘルプ表示 nnoremap <Leader>vh :vert bo help<Space> "insertモード時はEmacsライクなバインディング.ポップアップが出ないように移動. inoremap <C-e> <END> inoremap <C-a> <HOME> inoremap <expr><C-n> pumvisible() ? "\<C-y>\<Down>" : "\<Down>" inoremap <expr><C-p> pumvisible() ? "\<C-y>\<Up>" : "\<Up>" inoremap <expr><C-b> pumvisible() ? "\<C-y>\<Left>" : "\<Left>" inoremap <expr><C-f> pumvisible() ? "\<C-y>\<Right>" : "\<Right>" " inoremap <C-n> <Down> " inoremap <C-p> <Up> " inoremap <C-b> <Left> " inoremap <C-f> <Right> inoremap <C-d> <Del> inoremap <C-k> <C-o>D "バッファ切り替え nnoremap <silent><Right> :<C-u>bnext<CR> nnoremap <silent><Left> :<C-u>bprevious<CR> nnoremap <silent><Down> :<C-u>bw<CR> nnoremap <silent><Up> :<C-u>Unite buffer<CR> nnoremap <silent><C-n> :<C-u>bnext<CR> nnoremap <silent><C-p> :<C-u>bprevious<CR> "Visualモード時にvで行末まで選択する vnoremap v $h "CTRL-hjklでウィンドウ移動 nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> <C-w>l nnoremap <C-h> <C-w>h "縦方向移動支援 nnoremap J 3j nnoremap K 3k "VimShell nnoremap <Leader>vs :VimShell<CR> "neocomplcacheの設定 imap <C-s> <Plug>(neocomplcache_snippets_expand) smap <C-s> <Plug>(neocomplcache_snippets_expand) inoremap <expr><C-g> neocomplcache#undo_completion() "inoremap <expr><C-l> neocomplcache#complete_common_string() "スニペット展開候補があれば展開を,そうでなければbash風補完を. imap <expr><C-l> neocomplcache#sources#snippets_complete#expandable() ? "\<Plug>(neocomplcache_snippets_expand)" : neocomplcache#complete_common_string() " <CR>: close popup and save indent. inoremap <expr><CR> pumvisible() ? neocomplcache#smart_close_popup()."\<CR>" : "\<CR>" " <TAB>: completion inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" "スニペットがあればそれを展開.なければ通常の挙動をするTABキー " imap <expr><TAB> neocomplcache#sources#snippets_complete#expandable() ? "\<Plug>(neocomplcache_snippets_expand)" : 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() "d_で次の_の手前まで消す nnoremap d_ vf_hd "c_で次の_の手前まで消して訂正 nnoremap c_ vf_hc "Unite.vimのキーマップ "insertモード時はC-gでいつでもバッファを閉じられる(絞り込み欄が空の時はC-hでもOK) autocmd FileType unite imap <buffer> <C-g> <Plug>(unite_exit) "ファイル上にカーソルがある時,pでプレビューを見る autocmd FileType unite inoremap <buffer><expr> p unite#smart_map("p", unite#do_action('preview')) "C-xでクイックマッチ autocmd FileType unite imap <buffer> <C-x> <Plug>(unite_quick_match_default_action) "lでデフォルトアクションを実行 autocmd FileType unite nmap <buffer> l <Plug>(unite_do_default_action) autocmd FileType unite imap <buffer><expr> l unite#smart_map("l", unite#do_action(unite#get_current_unite().context.default_action)) "増えすぎてアレなら <Leader>ua などに置き換える.そのときはnnoremap <Leader>u <Nop>を忘れないようにする. "すべてを表示 nnoremap <silent> <Leader>a :<C-u>Unite -buffer-name=files buffer file_mru bookmark file outline history/yank<CR> "バッファを開いた時のパスを起点としたファイル検索 nnoremap <silent> <Leader>f :<C-u>UniteWithBufferDir -buffer-name=files file<CR> "バッファ一覧 nnoremap <silent> <Leader>b :<C-u>Unite buffer<CR> "ブックマークしたファイル/ディレクトリ nnoremap <silent> <Leader>B :<C-u>Unite -no-start-insert bookmark<CR> "最近使用したファイル nnoremap <silent> <Leader>m :<C-u>Unite -no-start-insert file_mru directory_mru<CR> "プログラミングにおけるアウトラインの表示 nnoremap <silent> <Leader>o :<C-u>Unite outline<CR> "grep検索. nnoremap <silent> <Leader>g :<C-u>Unite -no-start-insert grep<CR> "yank履歴 nnoremap <silent> <Leader>y :<C-u>Unite -no-start-insert history/yank<CR> "helpを引く.絞り込み初期は候補が膨大になるのでワードを先に入力 nnoremap <silent> <Leader>h :<C-u>UniteWithInput -no-start-insert help<CR> "Uniteバッファの復元 nnoremap <silent> <Leader>r :<C-u>UniteResume<CR> "QuickRunのキーマップ nnoremap <Leader>q <Nop> nmap <silent><Leader>qr :w<CR><Plug>(quickrun):copen<CR> nnoremap <Leader>qR :QuickRun<Space> "QuickFixバッファを閉じると同時にエラー表示も消す autocmd FileType qf nnoremap <buffer><silent> q :q<CR>:HierClear<CR> "tcomment.vimのキーマップ nnoremap <Leader>c :TComment<CR> vnoremap <Leader>c :TComment<CR> vnoremap <Leader>C :TCommentBlock<CR> "endwise.vimのキーマップ "キーマップ問題解消のためにカスタマイズ.(ソースもカスタマイズ.) "http://d.hatena.ne.jp/rhysd/20111010 autocmd FileType ruby imap <buffer> <expr><CR> pumvisible() ? neocomplcache#smart_close_popup() . "\<CR>\<Plug>DiscretionaryEnd" : "\<CR>\<Plug>DiscretionaryEnd" "vim-toggleのキーマップ nmap <C-t> <Plug>ToggleN """"""""""""""""""""""""""""" " vundle.vim の設定 " """"""""""""""""""""""""""""" filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " My Bundles here: " original repos on github Bundle 'Shougo/vimshell' Bundle 'Shougo/vimproc' Bundle 'Shougo/neocomplcache' Bundle 'thinca/vim-quickrun' Bundle 'Shougo/unite.vim' Bundle 'tomtom/tcomment_vim' Bundle 'h1mesuke/unite-outline' Bundle 'tsukkee/unite-help' Bundle 'hiroro/vimdoc_ja' Bundle 'jceb/vim-hier' Bundle 'taku-o/vim-toggle' " vim-scripts repos "Bundle 'errormarker.vim' Bundle 'surround.vim' "Bundle 'endwise.vim' " non github repos "Bundle 'git://git.wincent.com/command-t.git' filetype plugin indent on " required!