Vimrcを晒す
keymapとvimrcを整理しました
これで500行くらい. まだまだ初心者です.
" まずは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' " Unite なんか凄い NeoBundle 'Shougo/unite.vim' " 補完 NeoBundle 'Shougo/neocomplete' " 非同期実行 NeoBundle 'Shougo/vimproc' " vim でシェル NeoBundle 'Shougo/vimshell' " スニペット補完 NeoBundle 'Shougo/neosnippet' " 実行 NeoBundle 'thinca/vim-quickrun' " 対応カッコをハイライトする? NeoBundle 'vim-scripts/Highlight-UnMatched-Brackets' " vimからツイッター NeoBundle 'TwitVim' " カラースキーム NeoBundle 'ujihisa/unite-colorscheme' " きれいなカラースキーム NeoBundle 'nanotech/jellybeans.vim' " ステータスラインが便利になる NeoBundle 'bling/vim-airline' " NeoBundle 'osyo-manga/unite-quickfix' "コピペ周りが楽になる NeoBundle 'YankRing.vim' " NeoBundle 'tpope/vim-fugitive' " あまり使ってない NeoBundle 'kana/vim-smartchr' " neocompleteから英語辞書の利用 NeoBundle 'https://github.com/ujihisa/neco-look.git' " SAN値ピンチ NeoBundle 'osyo-manga/quickrun-hook-santi_pinch' " ぬるぬる動かす NeoBundle 'yonchu/accelerated-smooth-scroll' " 検索結果が見やすくなり助かる NeoBundle 'osyo-manga/vim-anzu' "ウィンドウサイズの変更が楽になる NeoBundle 'git://github.com/jimsei/winresizer.git' " NeoBundle 'deris/vim-duzzle' " NeoBundle 'cohama/vim-insert-linenr' " ステータスラインで天気が見られるらしい "NeoBundle 'mattn/vim-airline-weather' " vim でぷよぷよ NeoBundle 'rbtnn/puyo.vim' " haskell用 NeoBundle 'ujihisa/neco-ghc' NeoBundle 'dag/vim2hs' " Mac内臓の辞書アプリの内容を呼び出す NeoBundle 'modsound/macdict-vim.git' NeoBundleCheck " history/yankの有効化 let g:unite_source_history_yank_enable =1 " 履歴の閲覧 nnoremap <silent> ,gy :<C-u>Unite history/yank<CR> filetype plugin indent on " jellybeansの利用 colorscheme jellybeans " santi-pinchの設定 "warning" が含まれている分だけアニメーション速度が速くなる " アニメーションの速度は &updatetime や runner/vimproc/updatetime に影響される " " santi : 低いほどアニメーションが速くなる " keyword : 出力するテキストに単語が含まれている回数分だけ santi が減る " rate : santi が減る割合 " min : santi の最小値 " " santi を下げる場合は下記のような outputter に buffered を含める必要がある " buffered じゃなくて quickfix でも可 let g:quickrun_config = { \ "_" : { \ "hook/santi_pinch/santi" : 10, \ "hook/santi_pinch/keyword" : "warning", \ "hook/santi_pinch/rate" : 1.0, \ "hook/santi_pinch/min" : 4, \ "runner" : "vimproc", \ "runner/vimproc/updatetime" : 60, \ "runner/vimproc/sleep" : 10, \ "outputter" : "multi:buffer:buffered", \ "outputter/buffered/target" : "null" \ }, \} " quickrun の設定 " バッファの開き方を設定 " 一番下に水平分割してウィンドウを開く " ウィンドウの高さは 8行 let g:quickrun_config = { \ "_" : { \ "runner" : "vimproc", \ "runner/vimproc/updatetime" : 40, \ "hook/time/enable": 1, \ "outputter/buffer/split" : ":botright 4sp", \ } \} " ヤンク周りの設定 " " 200行ヤンク " '20 - remember marks for 20 previous files " \"200 - save 200 lines for each register " :20 - remember 20 items in command-line history " % - remember the buffer list (if vim started without a file arg) " n - set name of viminfo file set viminfo='20,\"200,:20,%,n~/.viminfo " Twitvim 関連 あまり使ってない let twitvim_count = 40 nnoremap <C-t> :<C-u>PosttoTwitter<CR> nnoremap ,tf :<C-u>FriendsTwitter<CR><C-w>j nnoremap ,tu :<C-u>UserTwitter<CR><C-w>j nnoremap ,tr :<C-u>RepliesTwitter<CR><C-w>j nnoremap ,tn :<C-u>NextTwitter<CR> autocmd FileType twitvim call s:twitvim_my_settings() function! s:twitvim_my_settings() set nowrap endfunction syntax on filetype detect " 勉強用に作った関数 function! SaveBackup () let b:backup_count = exists('b:backup_count') ? b:backup_count+1 : 1 return writefile(getline(1,'$'), bufname('%') . '_' . b:backup_count) endfunction nnoremap ;b :call SaveBackup ()<cr> """ unite.vim "" コピペしただけ まだ何も分かっていない " 入力モードで開始する let g:unite_enable_start_insert=1 " バッファ一覧 nnoremap <silent> ,ub :<C-u>Unite buffer<CR> " ファイル一覧 nnoremap <silent> ,uf :<C-u>UniteWithBufferDir -buffer-name=files file<CR> " レジスタ一覧 nnoremap <silent> ,ur :<C-u>Unite -buffer-name=register register<CR> " 最近使用したファイル一覧 nnoremap <silent> ,um :<C-u>Unite file_mru<CR> " 常用セット nnoremap <silent> ,uu :<C-u>Unite buffer file_mru<CR> " 全部乗せ nnoremap <silent> ,ua :<C-u>UniteWithBufferDir -buffer-name=files buffer file_mru bookmark file<CR> " ウィンドウを分割して開く au FileType unite nnoremap <silent> <buffer> <expr> <C-j> unite#do_action('split') au FileType unite inoremap <silent> <buffer> <expr> <C-j> unite#do_action('split') " ウィンドウを縦に分割して開く au FileType unite nnoremap <silent> <buffer> <expr> <C-l> unite#do_action('vsplit') au FileType unite inoremap <silent> <buffer> <expr> <C-l> unite#do_action('vsplit') " ESCキーを2回押すと終了する au FileType unite nnoremap <silent> <buffer> <ESC><ESC> q " smooth-scroll " <C-d>/<C-u> 時のスリープ時間 (msec) : 小さくするとスクロールが早くなります。 " Default : 10 let g:ac_smooth_scroll_du_sleep_time_msec = 2 " <C-f>/<C-b> 時のスリープ時間 (msec) : 小さくするとスクロールが早くなります。 " Default : 10 let g:ac_smooth_scroll_fb_sleep_time_msec = 2 " <C-d>/<C-u> 時のスリープ時間 (msec) : 小さくするとスクロールが早くなります。 " Default : 10 let g:ac_smooth_scroll_du_sleep_time_msec = 2 " <C-f>/<C-b> 時のスリープ時間 (msec) : 小さくするとスクロールが早くなります。 " Default : 10 let g:ac_smooth_scroll_fb_sleep_time_msec = 2 " vim-anzu " 移動後にステータス情報をコマンドラインへと出力を行います。 " statusline を使用したくない場合はこっちを使用して下さい。 nmap n <Plug>(anzu-n-with-echo) nmap N <Plug>(anzu-N-with-echo) nmap * <Plug>(anzu-star-with-echo) nmap # <Plug>(anzu-sharp-with-echo) " texコマンドを数学的表示してくれる "let g:tex_conceal="adsmg" "set conceallevel=2 " 色々 set "カーソル位置を目立たせる set cursorline set cursorcolumn hi clear CursorLine nnoremap <esc><esc> :nohlsearch<cr><esc>:set nopaste<cr> " 検索結果をハイライトする set hlsearch " 行番号の表示 set number " 賢いインデント set smartindent " 位置の表示 set ruler " 文字色 syntax on " set shiftwidth=2 " set nocompatible " tabをスペースに変換 set smarttab set expandtab set tabstop=2 set autoindent set softtabstop=2 " 右下に入力途中のコマンドを表示しない set noshowcmd " モードの表示をしない vim-airlineで十分 set noshowmode " 対応するカッコの強調表示 set showmatch " コマンドラインは2行 set cmdheight=2 " backspaceでインデントと行を消せるように set backspace=indent,eol,start " タイトルの表示 set title " <C-a>と<C-x>などの基数を設定 set nrformats-=octal " スワップファイルを作らない set noswapfile " set linebreak set autoread set completeopt=menuone " bellを鳴らさない set t_vb= set novisualbell " バックアップを作らない set nowritebackup set nobackup set backupdir-=. "set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:% " F2, F3 でバッファの切替 map <F2> <esc>:bp<cr> map <F3> <esc>:bn<cr> " 無限 undo if has('persistent_undo') set undodir=~/.vim/undo set undofile endif " ファイルを開いたら前回の編集点にカーソルが置かれるように au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" " paste状態をF4で切り替え set pastetoggle=<F4> " 全角スペースを見やすく表示する if has('syntax') syntax enable function! ActivateInvisibleIndicator() highlight ZenkakuSpace cterm=underline ctermfg=darkgrey gui=underline guifg=#FF0000 match ZenkakuSpace / / endfunction augroup InvisibleIndicator autocmd! autocmd BufEnter * call ActivateInvisibleIndicator() augroup END endif " 矢印の無効化 inoremap OA <Nop> inoremap OB <Nop> inoremap OC <Nop> inoremap OD <Nop> " カッコ等の入力補助 inoremap {} {}<LEFT> inoremap [] []<LEFT> inoremap () ()<LEFT> inoremap "" ""<left> inoremap '' ''<left> inoremap $$ $$<left> inoremap <> <><left> " コピペ用 (Mac用) vnoremap <C-c> y:call system("pbcopy", getreg("\""))<CR> nnoremap <Space><C-v> :call setreg("\"",system("pbpaste"))<CR>p " vim-smartchrの利用 " 矢印は","を連打すれば出てくるようにできる " HaskellやRで便利 inoremap <buffer> <expr> , smartchr#loop(',' , '<-', '->', '<=', '=>') "inoremap <buffer> <expr> - smartchr#loop('-', '--', '------------------------------') "inoremap <buffer> <expr> = smartchr#loop('=', '==', ' = ', ' == ') " C-space にESCの割り当て " keyremap4macbookと合わせて, IMEをオフにする inoremap <Nul> <esc> vnoremap <Nul> <esc> vnoremap <Nul> <esc> " 行末、行頭への移動 nnoremap <C-y> $ inoremap <C-y> <esc>$i<right> " Vimshell関連 " nnoremap <silent> ,is :VimShell<cr> nnoremap <silent> ,irr :VimShellInteractive R -q <cr> nnoremap <silent> ,ih :VimShellInteractive ghci<cr> vnoremap <silent> ,ss :VimShellSendString<cr> inoremap <silent> ,ss <esc>:VimShellSendString<cr> nnoremap <silent> ,ss <S-v>:VimShellSendString<cr> nnoremap <silent> ,rr ggVG:VimShellSendString<cr> " Plugin key-mappings. " <C-k>でsnippetの展開 imap <C-k> <Plug>(neosnippet_expand_or_jump) smap <C-k> <Plug>(neosnippet_expand_or_jump) " 移動関連 nnoremap j gj nnoremap k gk nnoremap gj j nnoremap gk k nnoremap n nzz nnoremap N Nzz " ウィンドウの移動 " ウィンドウを分割して移動する nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> <C-w>l nnoremap <C-h> <C-w>h " 新しいウィンドウは右に, 下に set splitbelow set splitright " ZZで強制終了...を禁止 nnoremap ZZ <Nop> " vimrcを開く nnoremap ,vim :vsplit<cr><C-l>:e! $HOME/_vimrc<cr> " 色々開けるように set fileencodings=iso-2022-jp,euc-jp,cp932,ucs-bom,utf-8,default,latin1 " 保存しなくても他のファイルを開けるようになる set hidden " neocompleteの設定 " よくわからん let g:acp_enabeAtStartup=0 " 起動 let g:neocomplete#enable_at_startup = 1 let g:neocomplete#enable_smart_case = 1 let g:neocomplete#sources#syntax#min_keyword_length = 2 let g:neocomplete#enable_auto_close_preview=0 " 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 neocomplete#smart_close_popup() . "\<CR>" " For no inserting <CR> key. "return pumvisible() ? neocomplete#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> neocomplete#smart_close_popup()."\<C-h>" inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>" " inoremap <expr><C-y> pumvisible() ? neocomplete#close_popup() :"<esc>$i" " C-e で補完のキャンセル inoremap <expr><C-e> pumvisible() ? neocomplete#cancel_popup() :"" " 補完候補を20個表示 let g:unite_cursor_line_highlight = 'Search' let g:unite_abbr_highlight = 'StatusLine' " quickrunの設定 let g:quickrun_config ={} " 理系だから autocmd FileType tex nnoremap \cor :%s/。/. /g <cr>:%s/、/, /g<cr> " 移動周りの設定 inoremap <C-d> <del> inoremap <C-l> <Right> inoremap <C-h> <Left> " C-gで補完のキャンセル inoremap <expr><C-g> neocomplete#undo_completion() " 補完中ははC-nで下に, C-pで上に, C-kで展開, C-gでキャンセル "