現在の.vimrc

2011年11月28日 オフ 投稿者: KYO
Table of Contents

どんどん肥大化していってる.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’:’    ‘}