Created
July 9, 2013 15:52
-
-
Save anonymous/5958507 to your computer and use it in GitHub Desktop.
This file contains 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 characters
set nocompatible " Use Vim defaults instead of 100% vi compatibility | |
set backspace=indent,eol,start " more powerful backspacing | |
"set textwidth=78 " Don't wrap words by default | |
set nobackup " Don't keep a backup file | |
set viminfo=!,'50,<1000,s100,\"50 " read/write a .viminfo file, don't store more than | |
set history=100 " keep 50 lines of command line history | |
set ruler " show the cursor position all the time | |
set noswapfile | |
filetype plugin indent on | |
" 補完時に無視されるファイル名のsuffix | |
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc | |
syntax on | |
"set t_Co=256 | |
set t_Sf=e[3%dm | |
set t_Sb=e[4%dm | |
"number | |
set number | |
"おりかえし | |
set nowrap | |
" エディタのいろの設定 | |
colorscheme molokai | |
hi Folded ctermfg=green ctermbg=NONE | |
hi FoldColumn ctermfg=green ctermbg=NONE | |
if &term =~ "xterm-256color" | |
" colorscheme desert256 | |
" colorscheme inkpot | |
"colorscheme wombat256 | |
endif | |
" 補完候補の色づけ for vim7 | |
hi Pmenu ctermfg=Black | |
hi Pmenu ctermbg=Gray | |
hi PmenuSel ctermfg=Black | |
hi PmenuSel ctermbg=Cyan | |
hi PmenuSbar ctermfg=White | |
hi PmenuSbar ctermbg=DarkGray | |
" タブ幅の設定 | |
set expandtab | |
set tabstop=4 | |
set softtabstop=4 | |
set shiftwidth=4 | |
set shiftround | |
set modelines=0 | |
"インデントの設定 | |
set autoindent | |
set smartindent | |
set cindent | |
"検索文字列が小文字の場合は大文字小文字を区別なく検索する | |
set ignorecase | |
"検索文字列に大文字が含まれている場合は区別して検索する | |
set smartcase | |
"検索時に最後まで行ったら最初に戻る | |
set wrapscan | |
"検索文字列入力時に順次対象文字列にヒットさせる | |
set incsearch | |
"入力中のコマンドをステータスに表示する | |
set showcmd | |
"括弧入力時の対応する括弧を表示 | |
set showmatch | |
"検索結果文字列のハイライトを有効にする | |
set hlsearch | |
"ステータスラインを常に表示 | |
set laststatus=2 | |
"ステータスラインに文字コードと改行文字を表示する | |
"set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y(%{GitBranch()})\ %F%=%l,%c%V%8P | |
" コマンドライン補完するときに強化されたものを使う(参照 :help wildmenu) | |
set wildmenu | |
" コマンドライン補間をシェルっぽく | |
set wildmode=list:longest | |
" バッファが編集中でもその他のファイルを開けるように | |
set hidden | |
" 外部のエディタで編集中のファイルが変更されたら自動で読み直す | |
set autoread | |
" Whitespaceを表示 | |
set listchars=tab:>-,trail:_ | |
set list | |
" 文字コードの自動認識 | |
" from ずんWiki http://www.kawaz.jp/pukiwiki/?vim#content_1_7 | |
set encoding=utf-8 | |
set fileencoding=utf-8 | |
if &encoding !=# 'utf-8' " 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' | |
" 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 | |
let &fileencodings = 'utf-8' . ',' . &fileencodings " XXX: adhocな対応 | |
" 定数を処分 | |
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 | |
" □とか○の文字があってもカーソル位置がずれないようにする | |
if exists('&ambiwidth') | |
set ambiwidth=double | |
endif | |
" set tags | |
set tags=/Users/yohei/.vim/tags/perl/cpan.tags,./**/tags | |
" 辞書ファイルからの単語補間 | |
set complete+=k | |
""" プラグインの設定 | |
""" キーバインドの設定 | |
" mapleader | |
let mapleader = "," | |
" tags key map (C-z を C-tに,C-tはGNU/screenとかぶる) | |
map <C-z> <C-t> | |
" C-]でtjと同等の効果 | |
nmap <C-]> g<C-]> | |
" Ctrl-@がうざいのでCtrl-[にする | |
" map <C-@> <C-[> | |
" Ctrl-lでもCtrl-[です | |
map <C-l> <C-[> | |
" ,w は :up | |
nnoremap <unique> <Leader>w :<C-u>update<CR> | |
" wrapトグル | |
"nnoremap <Leader>l :<C-u>setlocal wrap!<CR> | |
" yeでそのカーソル位置にある単語をレジスタに追加 | |
"nmap ye :let @"=expand("<cword>")<CR> | |
" Macのクリップボードをペースト | |
"nmap <Leader>v <Plug>(fakeclip-p) | |
"vmap <Leader>v <Plug>(fakeclip-p) | |
"nmap <Leader>vp <Plug>(fakeclip-p) | |
"vmap <Leader>vp <Plug>(fakeclip-p) | |
"nmap <Leader>vy <Plug>(fakeclip-y) | |
"vmap <Leader>vy <Plug>(fakeclip-y) | |
"表示行単位で行移動する | |
nmap j gj | |
nmap k gk | |
vmap j gj | |
vmap k gk | |
" help | |
nnoremap <Leader>h :help | |
" Buffer系 | |
nnoremap <Leader>n :bn<CR> | |
nnoremap <Leader>p :bp<CR> | |
nnoremap <Leader>c :bd<CR> | |
"nnoremap <Leader>l :ls<CR> | |
nnoremap <Leader>o :only<CR> | |
nnoremap <Leader>1 :e #1<CR> | |
nnoremap <Leader>2 :e #2<CR> | |
nnoremap <Leader>3 :e #3<CR> | |
nnoremap <Leader>4 :e #4<CR> | |
nnoremap <Leader>5 :e #5<CR> | |
nnoremap <Leader>6 :e #6<CR> | |
nnoremap <Leader>7 :e #7<CR> | |
nnoremap <Leader>8 :e #8<CR> | |
nnoremap <Leader>9 :e #9<CR> | |
" Tab系 | |
nnoremap <Leader><Leader>e :tabedit<CR> | |
nnoremap <Leader><Leader>n :tabnext<CR> | |
nnoremap <Leader><Leader>p :tabprevious<CR> | |
nnoremap <Leader><Leader>c :tabclose<CR> | |
nnoremap <Leader><Leader>o :tabopen<CR> | |
" Window系 | |
noremap <LEFT> <C-w>h10<C-w><<C-w>p | |
noremap <RIGHT> <C-w>h10<C-w>><C-w>p | |
noremap <UP> <C-w>k10<C-w>-<C-w>j | |
noremap <DOWN> <C-w>k10<C-w>+<C-w>j | |
" 縦分割で画面が狭くなりすぎないようにする | |
" via http://vim-users.jp/2009/07/hack42/ | |
nnoremap <C-w>w <C-w>w:call <SID>good_width()<Cr> | |
nnoremap <C-w><C-w> <C-w>w:call <SID>good_width()<Cr> | |
nnoremap <C-w>h <C-w>h:call <SID>good_width()<Cr> | |
nnoremap <C-w>l <C-w>l:call <SID>good_width()<Cr> | |
nnoremap <C-w>H <C-w>H:call <SID>good_width()<Cr> | |
nnoremap <C-w>L <C-w>L:call <SID>good_width()<Cr> | |
function! s:good_width() | |
if winwidth(0) < 80 | |
vertical resize 80 | |
endif | |
endfunction | |
" folding系 | |
nnoremap <unique> <silent> <Leader>zm :setl foldmethod=manual<CR>zR | |
nnoremap <unique> <silent> <Leader>zn :setl foldmethod=indent<CR>zM | |
nnoremap <unique> <silent> <Leader>zs :setl foldmethod=syntax<CR>zM | |
nnoremap <unique> <silent> <Leader>zk :setl foldmethod=marker<CR>zM | |
" fuf | |
"let g:fuf_modesDisable = ['mrucmd'] | |
"let g:fuf_file_exclude = '\v\~$|\.(o|exe|bak|swp|gif|jpg|png)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])' | |
"let g:fuf_mrufile_exclude = '\v\~$|\.bak$|\.swp|\.howm$|\.(gif|jpg|png)$' | |
"let g:fuf_mrufile_maxItem = 10000 | |
"let g:fuf_enumeratingLimit = 20 | |
"let g:fuf_keyPreview = '<C-]>' | |
"let g:fuf_previewHeight = 0 | |
"nnoremap <unique> <silent> <Leader>b :FufBuffer<CR> | |
"nnoremap <unique> <silent> <Leader>F :FufFile <C-r>=expand('%:~:.')[:-1-len(expand('%:~:.:t'))]<CR><CR> | |
"nnoremap <unique> <silent> <Leader>f :FufFile **/<CR> | |
"nnoremap <unique> <silent> <Leader>r :FufMruFile<CR> | |
"nnoremap <unique> <silent> <Leader>q :FufQuickfix<CR> | |
"nnoremap <unique> <silent> <Leader>t :FufTag<CR> | |
"nnoremap <unique> <silent> <Leader>l :FufLine<CR> | |
"nnoremap <silent> <C-]> :FufTag! <C-r>=expand('<cword>')<CR><CR> | |
" encoding | |
nnoremap <Leader>mu :<C-u>setl encoding=utf-8<CR> | |
nnoremap <Leader>me :<C-u>setl encoding=euc-jp<CR> | |
nnoremap <Leader>ms :<C-u>setl encoding=cp932<CR> | |
" grep系 | |
nnoremap <unique> <Leader>a :exec ':Ack ' . expand('<cword>')<CR> | |
nnoremap <unique> <Leader>A :Ack | |
"nnoremap <unique> <Leader>g :exec ':vimgrep /' . getreg('/') . '/j %\|cwin'<CR> | |
nnoremap <unique> <Leader>g :exec ':GitGrep ' . expand('<cword>')<CR> | |
nnoremap <unique> <Leader>G :GitGrep | |
" make | |
noremap <unique> <Leader>m :<C-u>make!<CR> | |
"<Leader>e でそのコマンドを実行 | |
nnoremap <Leader>e :<C-u>execute '!' &ft ' %'<CR> | |
"nmap <Leader>e :execute 'set makeprg=' . expand(&ft) . '\ ' . expand('%')<CR>:make<CR> | |
"nmap <Leader>e :echo 'set makeprg=' . expand(&ft) . '\ ' . expand('%')<CR> | |
" PerlのPackage名をつくる | |
nnoremap epp a<C-R>=join(split(substitute(expand("%:p"), '.*lib/\\|.pm$', "", "g"), "/"), "::")<CR> | |
" use 文を自動で挿入 | |
nnoremap <silent> <buffer> em :<C-u>PerlUseInsertionCWord<CR> | |
" yankmap | |
noremap <silent> sy :call YanktmpYank()<CR> | |
noremap <silent> sp :call YanktmpPaste_p()<CR> | |
noremap <silent> sP :call YanktmpPaste_P()<CR> | |
""" hook | |
" quickfixがある時はひらく | |
autocmd QuickfixCmdPost make,grep,grepadd,vimgrep cwin | |
" 前回終了したカーソル行に移動 | |
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif | |
""" filetypeごとの設定 | |
if has("autocmd") | |
" Enabled file type detection | |
" Use the default filetype settings. If you also want to load indent files | |
" to automatically do language-dependent indenting add 'indent' as well. | |
filetype plugin on | |
"そのファイルタイプにあわせたインデントを利用する | |
filetype indent on | |
" perl | |
autocmd FileType perl :setlocal iskeyword+=: | |
autocmd FileType perl :setlocal isfname-=- | |
"autocmd FileTYpe perl noremap K :<C-u>Perldoc<CR> | |
" html | |
autocmd FileType xhtml :setlocal softtabstop=2 | |
autocmd FileType xhtml :setlocal shiftwidth=2 | |
autocmd FileType xhtml :setlocal indentexpr= | |
autocmd FileType html :setlocal shiftwidth=2 tabstop=2 softtabstop=2 | |
"autocmd FileType html :setlocal indentexpr= | |
"autocmd FileType html :setlocal filetype=tt2html "色消えるので消した | |
"autocmd Filetype html :setlocal omnifunc=htmlcomplete#CompleteTags | |
" TT | |
"autocmd BufRead,BufNewFile *.tt :setlocal filetype=tt2html | |
"autocmd BufRead,BufNewFile *.tt2 :setlocal filetype=tt2html | |
" javascript | |
autocmd FileType javascript :setlocal omnifunc=javascriptcomplete#CompleteJS | |
" ruby | |
"autocmd FileType ruby :setlocal softtabstop=2 | |
"autocmd FileType ruby :setlocal shiftwidth=2 | |
" autocmd FileType ruby let g:rubycomplete_buffer_loading=1 | |
" autocmd FileType ruby let g:rubycomplete_classes_in_global=1 | |
" autocmd FileType ruby let g:rubycomplete_rails=1 | |
" cvs,svnの時は文字コードをそれぞれ設定 | |
autocmd FileType cvs :setlocal fileencoding=euc-jp | |
autocmd FileType svn :setlocal fileencoding=utf-8 | |
autocmd FileType cup :setlocal ft=s | |
" go | |
"autocmd BufRead,BufNewFile *.go :setlocal filetype=go | |
" scala | |
"autocmd BufRead,BufNewFile *.scala :setlocal filetype=scala | |
"autocmd FileType scala :setlocal softtabstop=2 | |
"autocmd FileType scala :setlocal shiftwidth=2 | |
" tex | |
"autocmd FileType tex :AutoComplPopDisable | |
"autocmd FileType plaintex :AutoComplPopDisable | |
autocmd BufNewFile,BufRead *.html.tx set filetype=html | |
autocmd BufNewFile,BufRead *.ejs set filetype=html | |
autocmd BufNewFile,BufRead *.ep set filetype=html | |
autocmd BufNewFile,BufRead *.tt set filetype=html | |
endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment