"set t_Co=256 " setting{{{ set nocompatible filetype off set rtp+=~/.vim/vundle.git/ call vundle#rc() if filereadable($HOME."/.vim/vundlerc") source $HOME/.vim/vundlerc endif filetype plugin indent on syntax on set backspace=indent,eol,start highlight Pmenu ctermbg = 5 highlight PmenuSel ctermbg = 1 highlight PMenuSbar ctermbg = 4 highlight StatusLine ctermbg=1 set directory-=. set iminsert=0 set imsearch=0 set imdisable set textwidth=0 set nobackup set history=500 set ruler set expandtab set tabstop=2 set softtabstop=2 set shiftwidth=2 set autoindent set smartindent set ignorecase set smartcase set wrapscan set incsearch "set listchars=tab:\\ set listchars=tab:>-,trail:_ set list set showcmd set showmatch set showmode set hlsearch nohlsearch set laststatus=2 set wildmode=list:longest,full set hidden set autoread "set foldmethod=syntax "set foldcolumn=3 "set title "au BufNewFile,BufRead * set iminsert=0 "set matchpairs+=<:> set visualbell set splitright set splitbelow set pumheight=20 set ambiwidth=double set completeopt=menuone,preview set cmdwinheight=3 set modeline set notagbsearch if has('persistent_undo') set undodir=./.vimundo,~/.vimundo endif "}}} "prompt{{{ set ruf=%45(%12f%=\ %m%{'['.(&fenc!=''?&fenc:&enc).']'}\ %l-%v\ %p%%\ [%02B]%) set statusline=%f:%{substitute(getcwd(),'.*/','','')}\ %m%=%{(&fenc!=''?&fenc:&enc).':'.strpart(&ff,0,1)}\ %l-%v\ %p%%\ %02B "}}} "mapping{{{ map ¥ \ map _ (operator-replace) nmap j gj nmap k gk vmap j gj vmap k gk noremap X ^x nmap n nzz nmap N Nzz if has('mac') && !has('gui') nnoremap y :.w !pbcopy vnoremap y :w !pbcopy nnoremap p :r !pbpaste vnoremap p :r !pbpaste " GVim(Mac & Win) else noremap y "+y noremap p "+p endif nmap ,e :execute '!' &ft ' %' "id:parasporospa command! Utf8 e ++enc=utf-8 command! Euc e ++enc=euc-jp command! Sjis e ++enc=cp932 command! Jis e ++enc=iso-2022-jp command! WUtf8 w ++enc=utf-8 | e command! WEuc w ++enc=euc-jp | e command! WSjis w ++enc=cp932 | e command! WJis w ++enc=iso-2022-jp | e "search in visual mode by * vnoremap * y/0 inoremap u inoremap u inoremap nnoremap h :help nnoremap m :marks "nnoremap ,r :registers nnoremap w :write nnoremap W :write! nnoremap q :quit nnoremap Q :quit! nnoremap bn :bnext nnoremap bp :bprevious nnoremap bd :bdelete nnoremap :nohlsearch cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap cnoremap command! Swrite :w sudo:% nnoremap Y y$ nmap % vmap % nnoremap no :set nu! nnoremap np :set paste! inoremap imap IMAP_JumpForward "}}} command! -nargs=1 -complete=file Rename f |call delete(expand('#')) nnoremap rw ':Rename '.expand('%:h').'/' "{{{ " 文字コード関連 " from ずんWiki http://www.kawaz.jp/pukiwiki/?vim#content_1_7 " 文字コードの自動認識 if !has('gui_macvim') && !has('kaoriya') if &encoding !=# 'utf-8' set encoding=japan set fileencoding=japan endif if has('iconv') let s:enc_euc = 'euc-jp' let s:enc_jis = 'iso-2022-jp' " iconvがeucJP-msに対応しているかをチェック if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'eucjp-ms' let s:enc_jis = 'iso-2022-jp-3' "noomnifunc iconvがJISX0213に対応しているかをチェック elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'euc-jisx0213' let s:enc_jis = 'iso-2022-jp-3' endif " fileencodingsを構築 if &encoding ==# 'utf-8' let s:fileencodings_default = &fileencodings let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932' let &fileencodings = &fileencodings .','. s:fileencodings_default unlet s:fileencodings_default else let &fileencodings = &fileencodings .','. s:enc_jis set fileencodings+=utf-8,ucs-2le,ucs-2 if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$' set fileencodings+=cp932 set fileencodings-=euc-jp set fileencodings-=euc-jisx0213 set fileencodings-=eucjp-ms let &encoding = s:enc_euc let &fileencoding = s:enc_euc else let &fileencodings = &fileencodings .','. s:enc_euc endif endif " 定数を処分 unlet s:enc_euc unlet s:enc_jis endif " 日本語を含まない場合は fileencoding に encoding を使うようにする if has('autocmd') function! AU_ReCheck_FENC() if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0 let &fileencoding=&encoding endif endfunction autocmd BufReadPost * call AU_ReCheck_FENC() endif " 改行コードの自動認識 set fileformats=unix,dos,mac endif "}}} " 前回終了したカーソル行に移動 autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif "{{{ rails.vimの設定 let g:rails_level=4 let g:rails_default_file="app/controllers/application.rb" let g:rails_default_database="mysql" "}}} "{{{ rubycomplete.vim autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1 autocmd FileType ruby,eruby let g:rubycomplete_rails = 1 autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1 "}}} autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType php set complete+=k~/.vim/dict/php.dict autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType gitcommit setl fileencoding=utf8 autocmd User Symfony10 setlocal tags+=$HOME/tags/symfony10.tags autocmd User Symfony14 setlocal tags+=$HOME/tags/symfony14.tags "for cakephp au BufNewFile,BufRead *.thtml setfiletype php au BufNewFile,BufRead *.ctp setfiletype php au BufNewFile,BufRead *.tt setfiletype html au BufNewFile,BufRead *.mt setfiletype html au BufNewFile,BufRead *.ejs setfiletype html au BufNewFile,BufRead *.psgi setfiletype perl au BufNewFile,BufRead *.t setl filetype=perl au BufNewFile,BufRead *.kml setfiletype xml au BufNewFile,BufRead *.r set filetype=r "smartchr plugin "inoremap = smartchr#one_of(' = ', ' == ', ' === ', '=') "{{{ "http://subtech.g.hatena.ne.jp/secondlife/20090503/1241321929 function! WordCount() let lines = getline('0', '$') let c = 0 for line in lines let c += strlen(substitute(line, ".", "x", "g")) endfor echo c endfunction command! WordCount :call WordCount() "}}} "{{{ symfony.vim map let g:vim_symfony_default_search_action_top_direction = 1 let g:vim_symfony_autocmd_version = 1 let g:vim_symfony_auto_search_root_dirctory = 1 "let g:vim_symfony_fuf = 1 nnoremap sv :Sview nnoremap sa :Saction nnoremap sm :Smodel nnoremap sp :Spartial nnoremap sc :Scomponent "let g:symfony_snipmate = 1 "let g:symfony_filetype = 1 "}}} "{{{ vim-latex "http://vim.g.hatena.ne.jp/y_yanbe/20080918/1221724545 "set shellslash "set grepprg=grep\ -nH\ $* let g:Tex_DefaultTargetFormat='pdf' let g:Tex_CompileRule_pdf = 'dvipdfmx $*.dvi' let g:Tex_BibtexFlavor = 'jbibtex' let g:Tex_CompileRule_dvi = 'platex-utf8 -interaction-nonstopmode $*' let g:Tex_FormatDependency_pdf='dvi,pdf' let g:Tex_ViewRule_pdf = 'open -a /Applications/Preview.app' let g:Tex_IgnoredWarnings = \"Underfull\n". \"Overfull\n". \"specifier changed to\n". \"You have requested\n". \"Missing number, treated as zero.\n". \"There were undefined references\n". \"Citation %.%# undefined\n". \'LaTeX Font Warning:'" let g:Tex_IgnoreLevel = 8 function! CompileAndView() execute 'w' call Tex_RunLaTeX() if !empty(getqflist()) return 0 endif call Tex_ViewLaTeX() endfunction "autocmd FileType tex nnoremap r :call CompileAndView() "}}} "{{{for quickfix mapping function! s:QuickFixMap() nnoremap q :ccl nnoremap cq :cexpr '' endfunction autocmd FileType qf call s:QuickFixMap() "}}} function! s:CreateDirAndWrite() let dir = expand("%:p:h") if isdirectory(dir) == 0 call mkdir(dir, 'p') endif execute ':w' endfunction command! CreateDirAndWrite :call s:CreateDirAndWrite() " {{{ ref.vim "let g:ref_phpmanual_path = let g:ref_phpmanual_cmd = 'w3m -dump %s' "let g:ref_jquery_path = let g:ref_jquery_cmd = 'w3m -dump %s' let g:ref_source_webdict_cmd = 'w3m -dump %s' nnoremap rp :Ref phpmanual " }}} " {{{ php-doc.vim let g:pdv_cfg_Type = "string" let g:pdv_cfg_Package = "" let g:pdv_cfg_Version = "$id$" "let g:pdv_cfg_Author = "fugafuga " "let g:pdv_cfg_Copyright = "Copyright (C) 2007 Hoge Corporation. All Rights Reserved." "let g:pdv_cfg_License = "PHP Version 5.0 {@link http://www.php.net/license/5_0.txt}" nnoremap ,d :call PhpDocSingle() " }}} "nmap : (cmdbuf-open-:) let plugin_dicwin_disable = 1 let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_enable_ignore_case = 1 let g:neocomplcache_enable_smart_case = 1 let g:neocomplcache_min_syntax_length = 3 let g:neocomplcache_manual_completion_start_length = 3 let g:neocomplcache_enable_auto_delimiter = 0 if !exists('g:neocomplcache_omni_patterns') let g:neocomplcache_omni_patterns = {} endif let g:neocomplcache_omni_patterns.perl = '\h\w->\h\w|\h\w*::' inoremap neocomplcache#smart_close_popup()."\" let g:neosnippet#snippets_directory = "~/.vim/snippets" let g:neosnippet#disable_runtime_snippets = { 'perl' : 1 } " SuperTab like snippets behavior. imap neosnippet#expandable_or_jumpable() ? \ "\(neosnippet_expand_or_jump)" \: pumvisible() ? "\" : "\" smap neosnippet#expandable_or_jumpable() ? \ "\(neosnippet_expand_or_jump)" \: "\" source $VIMRUNTIME/macros/matchit.vim let g:filetype_m = 'objc' " :HighlightWith {filetype} ['a 'b] XXX: Don't work in some case."{{{ command! -nargs=+ -range=% HighlightWith ,call s:highlight_with() xnoremap h :HighlightWith function! s:highlight_with(args) range if a:firstline == 1 && a:lastline == line('$') return endif let c = get(b:, 'highlight_count', 0) let ft = matchstr(a:args, '^\w\+') if globpath(&rtp, 'syntax/' . ft . '.vim') == '' return endif unlet! b:current_syntax let save_isk= &l:isk " For scheme. execute printf('syntax include @highlightWith%d syntax/%s.vim', \ c, ft) let &l:isk= save_isk execute printf('syntax region highlightWith%d start=/\%%%dl/ end=/\%%%dl$/ ' \ . 'contains=@highlightWith%d', \ c, a:firstline, a:lastline, c) let b:highlight_count = c + 1 endfunction "}}} " {{{ unite call unite#custom#substitute('files', '[^~.* ]\ze/', '\0', -100) call unite#custom#substitute('files', '/\ze[^~.* ]', '/', -100) nnoremap ff :Unite file file/new -buffer-name=files nnoremap fc :UniteWithBufferDir file file/new -buffer-name=files nnoremap fb :Unite buffer nnoremap fo :Unite outline nnoremap ft :Unite tab nnoremap fd :Unite directory_mru -default-action=lcd -buffer-name=directory nnoremap fm :Unite file_mru -buffer-name=files nnoremap fi :Unite file_include -buffer-name=file_include nnoremap fr :Unite file_rec/async -buffer-name=files nnoremap fj :Unite jump -buffer-name=jump nnoremap rp :Unite ref/perldoc -buffer-name=ref nnoremap ml :Unite file:=g:memolist_path."/" autocmd FileType unite call s:unite_my_settings() function! s:unite_my_settings() nmap (unite_all_exit) imap (unite_all_exit) imap (unite_delete_backward_path) nnoremap unite#do_action('vsplit') inoremap unite#do_action('vsplit') nnoremap unite#do_action('split') inoremap unite#do_action('split') endfunction let g:unite_source_file_mru_limit = 200 let g:unite_enable_start_insert = 1 " }}} " {{{ submode call submode#enter_with('winsize', 'n', '', '>', '>') call submode#enter_with('winsize', 'n', '', '<', '<') call submode#enter_with('winsize', 'n', '', '+', '+') call submode#enter_with('winsize', 'n', '', '-', '-') call submode#map('winsize', 'n', '', '>', '>') call submode#map('winsize', 'n', '', '<', '<') call submode#map('winsize', 'n', '', '+', '+') call submode#map('winsize', 'n', '', '-', '-') " }}} command! -nargs=1 ChangeIndent :setl ts= |setl sw= let g:netrw_nogx = 1 " disable netrw's gx mapping. nmap gx (openbrowser-smart-search) vmap gx (openbrowser-smart-search) let perl_fold = 1 let perl_nofold_packages = 1 let perl_nofold_subs = 1 let g:gist_open_browser_after_post = 1 " {{{ " for tex function! s:subsitute_interpunction() let pos = getpos(".") silent execute "try | %s/。/./g | catch | endtry" silent execute "try | %s/、/,/g | catch | endtry" call setpos(".", pos) endfunction autocmd! BufWrite *.tex call s:subsitute_interpunction() " }}} "{{{ "for quickhl command! QuickhlAddLastPat execute "QuickhlAdd!" . @/ nmap m (quickhl-toggle) xmap m (quickhl-toggle) nmap M (quickhl-reset) xmap M (quickhl-reset) "}}} " "{{{ " vim-textmanip xmap (textmanip-move-down) xmap (textmanip-move-up) xmap (textmanip-move-left) xmap (textmanip-move-right) xmap d (textmanip-duplicate-down) nmap d (textmanip-duplicate-down) xmap D (textmanip-duplicate-up) nmap D (textmanip-duplicate-up) "}}} "{{{ " watchdog.vim" let g:watchdogs_check_BufWritePost_enables = { \ "perl" : 1, \ "javascript" :0 \ } let g:quickrun_config = { \ "watchdogs_checker/_" : { \ "runner/vimproc/updatetime" : 40, \ "hook/close_quickfix/enable_exit" : 1, \ "hook/back_window/enable_exit" : 1, \ }, \ "watchdogs_checker/perl-projectlibs" : { \ "command" : "perl", \ "exec" : "%c %o -cw -MProject::Libs %s:p", \ "quickfix/errorformat": "%m\ at\ %f\ line\ %l%.%#", \ }, \ "perl/watchdogs_checker" : { \ "type": "watchdogs_checker/perl-projectlibs", \ }, \} call watchdogs#setup(g:quickrun_config) "}}} source $HOME/.vimrc.local