現在の.vimrc
2011年11月28日どんどん肥大化していってる.vimrcですが、メモ用に転記。
” KYO’s Tech thekyo.jp
“”
” 基本設定
”
” バックアップファイル(***~)を作らない
set nobk
“”
” 文字コード設定
”
” ターミナルコンソールエンコーディング
set termencoding=utf-8
set encoding=utf-8
” 改行コード[unix|dos|mac]
set fileformat=unix
set fileformats=unix,dos,mac
” 内部エンコーディング
set fileencoding=utf-8
set fileencodings=iso-2022-jp,utf-8,euc-jp,latin1
“”
” タブ/インデント設定
”
” 画面上でのタブ幅(tabstop/softtabstop)
set ts=4
set sts=0
” タブをスペースに展開
set expandtab
” 自動的にインデントする(shiftwidth/autoindent)
set sw=4
” set autoindent
” スマートインデント(smartindent or cindent)
” set smartindent
set cindent
” バックスペースで、インデントや改行を削除(backspace)
” 0: Vi互換
” 1: indent,eol
” 2: indent,eol,start
set bs=2
“”
” 編集設定
”
” 括弧入力時に、対応する括弧を表示
set showmatch
” コマンドライン補完に強化されたものを利用する
set wildmenu
“set wildmenu=list:full
” テキスト整形オプション
set formatoptions=tcq
” ステータスライン表示情報
“set statusline=% function GetStatusEx()
let str = ”
let str = str. ‘[‘. &fileformat. ‘]’
if has(‘multi byte’) && fileencoding != ”
let str = ‘[‘. &fenc . ‘]’. str
endif
return str
endfunction
set statusline=% hl
exec ‘highlight ‘.a:hi
redir END
let hl = substitute(hl, ‘[\r\n]’, ”, ‘g’)
let hl = substitute(hl, ‘xxx’, ”, ”)
return hl
endfunction
“”
” pathogen
”
“pathogenでftdetectなどをロードさせるために一度ファイルタイプ判定をoffにする
filetype off
“pathogen.vimを使ってbundle配下のプラグインをpathに加える
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
set helpfile=$VIMRUNTIME/doc/help.txt
“ファイルタイプ設定をonにする
filetype on
filetype indent on
filetype plugin on
“”
” 現在のファイルをそのまま実行(ファイルが存在すること)
”
” @see http://subtech.g.hatena.ne.jp/secondlife/20060727/1153990447
” @usage ,e
”
function! ShebangExecute()
let m = matchlist(getline(1), ‘#!\(.*\)’)
if(len(m) > 2)
execute ‘!’. m[1] . ‘ %’
else
execute ‘!’ &ft ‘ %’
endif
endfunction
nmap ,e :call ShebangExecute()
“”
” php syntax check
”
” @see http://d.hatena.ne.jp/tell-k/20081224/1230185066
” @usage :make
autocmd filetype php :set makeprg=php\ -l\ %
autocmd filetype php :set errorformat=%m\ in\ %f\ on\ line\ %l
“”
” yanktmp.vim
”
” @usage sy
map sy :call :call YanktmpYank()
map sp :call :call YanktmpPaste_p()
map sp :call :call YanktmpPaste_p()
“””
“” ポップアップメニューのカラーを設定
“”
” highlight Pmenu ctermbg=4
” highlight PmenuSel ctermbg=1
” highlight PMenuSbar ctermbg=4
“”で補完
“” {{{ Autocompletion using the TAB key
“” This function determines, wether we are on the start of the line text (then tab indents) or
“” if we want to try autocompletion
” function! InsertTabWrapper()
” let col = col(‘.’) – 1
” if !col || getline(‘.’)[col – 1] !~ ‘\k’
” return “\”
” else
” if pumvisible()
” return “\”
” else
” return “\\”
” end
” endif
” endfunction
“” Remap the tab key to select action with InsertTabWrapper
” inoremap =InsertTabWrapper()
“” }}} Autocompletion using the TAB key
“”
” php-doc.vim
”
” @see ~/.vim/php-doc.vim
inoremap :call PhpDocSingle()i
nnoremap :call PhpDocSingle()
vnoremap :call PhpDocRange()
“”
” vim-ref
”
”
let g:ref_phpmanual_path = $HOME. ‘/public_html/repos/manual/php’
“”
” skel
”
augroup SkeletonAu
autocmd!
autocmd BufNewFile *.html 0r $HOME/.vim/skel.html
autocmd BufNewFile *.pl 0r $HOME/.vim/skel.pl
autocmd BufNewFile *.cgi 0r $HOME/.vim/skel.cgi
autocmd BufNewFile *.pm 0r $HOME/.vim/skel.pm
autocmd BufNewFile *.php 0r $HOME/.vim/skel.php
augroup END
“””
” 前回の編集位置を記憶
”
” @see http://blog.livedoor.jp/sasata299/archives/51179057.html
if has(“autocmd”)
autocmd BufReadPost *
\ if line(“‘\””) > 0 && line (“‘\””) \ exe “normal! g’\”” |
\ endif
endif
“””
” Syntax Check for Perl/ruby
”
” @see http://blog.livedoor.jp/sasata299/archives/51179057.html
” @usage Ctrl+n: syntax check / Ctrl+e: run
autocmd FileType perl :map :!perl -cw %
autocmd FileType perl :map :!perl %
autocmd FileType ruby :map :!ruby -cW %
autocmd FileType ruby :map :!ruby %
“””
” neocomplecache
”
” @see http://d.hatena.ne.jp/teppeis/20100926/1285502391
let g:neocomplcache_enable_at_startup = 1
“””
” 自動補完
”
” @see http://haman29.sakura.ne.jp/wp/20110807/225
inoremap { {}
inoremap [ []
inoremap ( ()
inoremap ” “”
inoremap ‘ ”
vnoremap { “zdi^V{z}
vnoremap [ “zdi^V[z]
vnoremap ( “zdi^V(z)
vnoremap ” “zdi^V”z^V”
vnoremap ‘ “zdi’z’
“””
” zencoding
”
” @see http://d.hatena.ne.jp/sakurako_s/20110126/1295988873#
let g:user_zen_settings = { ‘indentation’:’ ‘}