Vimrcを晒す
Vimrc
Vimfiler, Vimshell, Unite は入れただけで殆ど使っていません。
これから勉強します。ごめんなさい。
Bundleのままです。NeoBundleに移行していません。ごめんなさい。
" 色々 set set number set clipboard=unnnamed set clipboard=autoselect set smartindent set ruler syntax on set shiftwidth=4 set nocompatible set smarttab set tabstop=1 set expandtab set showcmd set autoindent set backspace=indent,eol,start set title set nrformats-=octal set noswapfile set linebreak set autoread set completeopt=menuone set nobackup " カーソル位置を目立たせる set cursorline set cursorcolumn hi clear CursorLine set hlsearch nnoremap <esc><esc> :nohlsearch<cr><esc>:set nopaste<cr> " F2, F3 でバッファの切替 map <F2> <esc>:bp<cr> map <F3> <esc>:bn<cr> " 全角スペースを見やすく表示する 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 <up> inoremap OB <down> inoremap OC <right> inoremap OD <left> " カッコ等の入力補助 inoremap {} {}<LEFT> inoremap [] []<LEFT> inoremap () ()<LEFT> inoremap "" ""<left> inoremap '' ''<left> inoremap $$ $$<left> inoremap <> <><left> inoremap `` ``<left> inoremap {<cr> {}<cr><cr><up><tab> " コピペ用 vnoremap <C-c> y:call system("pbcopy", getreg("\""))<CR> nnoremap <Space><C-v> :call setreg("\"",system("pbpaste"))<CR>p " 全選択 全コピー (甘え) nnoremap <F5> ggVG nnoremap <F6> :%y<cr> " vim-smartchrの利用 " 矢印は","を連打すれば出てくるようにできる " HaskellやRで便利 " 思案中 inoremap <buffer> <expr> , smartchr#loop(',' , '<-', '->', '<=', '=>') " 移動など <C-j>はESCに inoremap <C-h> <left> inoremap <C-j> <esc> vnoremap <C-j> <esc> inoremap <C-k> <UP> inoremap <C-l> <right> inoremap <C-d> <delete> inoremap <C-w> <BS> " C-space は何に割り当てるのがいいのかな "inoremap <Nul> <cr> " コンパイルと実行 (甘え) autocmd FileType r nnoremap <C-e> :w!<cr><esc>:! R -q -f %<cr> autocmd FileType cpp nnoremap <C-w> :! ./%< autocmd FileType cpp nnoremap <C-e> :w!<cr><esc>:! g++ -o %< % autocmd FileType haskell nnoremap <C-w> :! ./%< autocmd FileType haskell nnoremap <C-e> :w!<cr>:! ghc % " 行末、行頭への移動 nnoremap <C-y> $ inoremap <C-y> <esc>$i<right> " 最後に変更した場所へ戻る(便利) map <C-m> `. " コロン付き改行とただの改行(便利) inoremap <C-o> <esc>$i<right><Enter> "inoremap <C-g> <esc>$i<right>;<Enter> inoremap <C-g> <esc>$i<right>; " Vimshell関連 使いこなせない nnoremap <silent> ,is :VimShell<cr> nnoremap <silent> ,irr :VimShellInteractive R<cr> nnoremap <silent> ,ih :VimShellInteractive ghci<cr> vnoremap <silent> ,ss :VimShellSendString<cr> nnoremap <silent> ,ss <S-v>:VimShellSendString<cr> " TAB で補完候補の選択 inoremap <expr><TAB> pumvisible() ? "\<down>" : "\<tab>" inoremap <expr><s-tab> pumvisible() ? "\<up>" : "\<S-tab>" " ページ移動関連 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 " 保存とか (甘え) nnoremap ww :w! nnoremap qq :q! nnoremap ,vim :vsplit<cr><C-l>:e! $HOME/_vimrc<cr> nnoremap ee <esc>:e! " 色々開けるように set fileencodings=iso-2022-jp,euc-jp,cp932,ucs-bom,utf-8,default,latin1 " neocomplcacheの設定 " 起動 let g:neocomplcache_enable_at_startup = 1 " let g:neocomplcache_enable_underbar_completion = 1 " 補完候補を20個表示 let g:neocomplcache_max_list = 20 let g:neocomplcache_min_syntax_length = 3 let g:neocomplcache_enable_camel_case_completion = 1 let g:unite_cursor_line_highlight = 'Search' let g:unite_abbr_highlight = 'StatusLine' " quickrunの設定 let g:quickrun_config ={} " texファイルにはautolatexを実行…は諦めた "let g:quickrun_config.tex = {'command' : 'autolatex'} autocmd FileType tex nnoremap \r :! autolatex %<cr> " バッファの開き方を設定 " 一番下に水平分割してウィンドウを開く " ウィンドウの高さは 8行 let g:quickrun_config = { \ "_" : { \ "outputter/buffer/split" : ":botright 8sp", \ "runner" : "vimproc", \ "runner/vimproc/updatetime" : 40, \ "hook/time/enable": 1, \ } \} " persitent undo 無限undo if has('persistent_undo') set undodir=~/.vim/undo set undofile endif " ファイルを開いたら前回の編集点にカーソルが置かれるように au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" " Bundle の設定 set rtp+=~/.vim/vundle.git/ " (2) call vundle#rc() " (3) Bundle 'Shougo/unite.vim' Bundle 'Shougo/neocomplcache' Bundle 'Shougo/vimproc' Bundle 'Shougo/vimshell' Bundle 'Shougo/vimfiler' Bundle 'sudo.vim' Bundle 'thinca/vim-quickrun' Bundle 'chrismetcalf/vim-yankring' Bundle 'TwitVim' Bundle 'ujihisa/unite-colorscheme' Bundle 'nanotech/jellybeans.vim' Bundle 'osyo-manga/unite-quickfix' Bundle 'Gundo' Bundle 'YankRing.vim' Bundle 'tpope/vim-fugitive' Bundle 'kana/vim-smartchr' " haskell用 Bundle 'eagletmt/ghcmod-vim' Bundle 'ujihisa/neco-ghc' Bundle 'dag/vim2hs' filetype plugin indent on " jellybeansが目に優しくていいと思います :colorscheme jellybeans " 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 " なにこれ command! -nargs=* TestHello call TestHello(<f-args>) " 勉強用に作った関数 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 <silent> ;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
感想
よく使うもの
・すぐに実行結果が分かるquickrun。
・コピペが捗るYankring。
・VimからTwitterができるTwitVim。
・補完が便利なneocomplcache。
また、Rやghciでvimのキーマップを使いたいときにVimShellを使います。
何かコードを書くたびにvimrcを修正している気がします。
これから一生をかけて洗練させていこうと思います。