なんだか最近vimrcとか、環境をさらすのがはやってるらしいね。というわけで公開いたします。検索から来た人の役に少しでも立ってくれれば、と。
かなり特殊なところが多い・・・ですが、とてもおもしろい部分も多いと思うので是非見てやってください。あ、でも変なこともしてるので理解せずそのまま使うのはあんまりおすすめできない・・・かも。
あ、あとDebianでしか試してないんで、Fedoraだとここはこうだよ、的なことがあったら是非教えてください。

" .vimrc
" kcrt <kcrt kcrt.net>
"
scriptencoding utf-8
set nocompatible " 拡張機能を有効にする
" ----- 最初から入ってる奴 -----------------------
if &t_Co > 2 || has("gui_running") " カラーディスプレイ
syntax on
endif
filetype plugin indent on
augroup vimrcEx
autocmd FileType text setlocal textwidth=78
autocmd BufReadPost *
¥ if line("'¥"") > 0 && line("'¥"") <= line("$") |
¥ exe "normal g`¥"" |
¥ endif
augroup END
" ===== ユーザーインターフェース関係 =============
" ----- 設定 -------------------------------------
set backspace=2 " <BS>の動作設定
set history=50 " :コマンドの履歴数
set showcmd " コマンド表示
set laststatus=2 " 最下部情報行の行数
set statusline=%h%w%f¥ %m%#RO#%r%#StatusLine#%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v¥ %l/%L¥ (%p%%)
set hlsearch " 検索時ハイライト有効
" ----- マウス -----------------------------------
if &term == "screen"
set mouse=a " マウス有効
set ttymouse=xterm2
endif
" ----- タブインターフェース(またはバッファ) -----
map Q gq
" C-Tabでタブが使えるときはタブを切り替え
" 使えない場合はバッファの切り替えを行う
if(exists(":tab"))
nmap <C-Tab> :tabn<CR>
nmap <C-S-Tab> :tabprev<CR>
else
nmap <C-Tab> :bn<CR>
nmap <C-S-Tab> :bp<CR>
endif
"C-→とC-←をC-Tab, C-S-Tabと同様の操作にする
nmap ^[[C <C-Tab>
nmap ^[[D <C-S-Tab>
" タブラインの表記
set tabline=%!MyTabLine() "後述
" ----- コマンド略記------------------------------
ca man help
" ----- 補完 -------------------------------------
set complete =.,w,k,b,u,t,i
if (exists('*pumvisible') && has("gui"))
inoremap <expr> <CR> pumvisible() ? "¥<c-y>" : "¥<c-g>u¥<cr>"
inoremap <expr> <Esc> pumvisible() ? "¥<C-E>":"¥<Esc>"
" inoremap <expr> <c-n> pumvisible() ? "¥<lt>c-n>" : "¥<c-n>¥<c-r>=pumvisible() ? ¥"¥¥<lt>down>¥" : ¥"¥"¥<lt>cr>"
endif
if (exists('&omnifunc'))
imap <C-Space> <C-X><C-O>
else
imap <C-Space> <C-N>
endif
" ----- その他のキー設定 -------------------------
map <F1> K
nnoremap <UP> gk
nnoremap <DOWN> gj
" ===== 編集に関連する設定 =======================
" ----- 文字エンコードの設定 ---------------------
set fileencodings=utf-8,shift_jis,euc-jp
set fileencoding=utf-8 " デフォルトのファイルエンコーディング
set ambiwidth=double " 幅未定義MBSCの幅
" ----- 親切設定 ---------------------------------
set showmatch " 対応する括弧を強調表示
set display=lastline " @@@表示
" ----- 検索 -------------------------------------
set incsearch " インクリメンタルサーチ
set ignorecase " 検索時大文字・小文字無効
set smartcase " 検索時大文字・小文字自動判別
" 見つかったアイテムを自動的に中央に
nmap n nzz
nmap N Nzz
" ----- タブとインデント -------------------------
set tabstop=4 " <Tab>に対応する空白数
set shiftwidth=4 " インデントに使われる空白数
set softtabstop=4 " タブとして使われる空白数
set autoindent " 自動インデント
set smartindent " スマートインデント
" ===== 動作設定 =================================
" ----- バックアップ -----------------------------
set backup " バックアップ有効
" TODO:フォルダがあるかどうか調べる
if has("win32")
set backupdir=d:/kt/Backup
else
set backupdir=~/.backup
endif
" ----- クリップボード ---------------------------
nmap <C-R>* <C-O>"*p
nmap "*yy V"*y
if has("win32unix") " cygwinの事です
nnoremap "*p :r!getclip<CR>
vnoremap "*y :!putclip<CR>u:echo 'copyed'<CR>
elseif has("unix")
if $TERM=="screen"
nnoremap "*p i<C-O>:!screen -X paste .<CR>
vnoremap "*y :w! ~/tmp/vim-clipboard<CR>:!screen -X readbuf ~/tmp/vim-clipboard<CR>:echo 'copyed'<CR>
else
nnoremap "*p :r ~/tmp/vim-clipboard<CR>
vnoremap "*y :w! ~/tmp/vim-clipboard<CR>:echo copyed'<CR>
endif
endif
" ----- screen関係の設定 -------------------------
if &term =~ "screen"
augroup IsTerminal
autocmd VimLeave * silent! exe '!echo -n "^[k' . &shell . '^[¥¥"'
autocmd BufEnter * silent! exe '!echo -n "^[k' . "vim:%" . '^[¥¥"'
augroup END
endif
" ===== 印刷設定 =================================
" set printfont="ヒラギノ" -> gvimrc
" ===== ファイル関連設定 =========================
" ----- テンプレート -----------------------------
augroup LoadTemplate
autocmd BufNewFile *.pl 0r ~/etc/template/template.pl
autocmd BufNewFile *.php 0r ~/etc/template/template.php
autocmd BufNewFile *.cpp 0r ~/etc/template/template.cpp
autocmd BufNewFile *.h 0r ~/etc/template/template.h
augroup END
" ----- ファイル別設定 ---------------------------
augroup filetypedetect
autocmd BufNewFile,BufRead *.txt :setf txt
autocmd BufNewFile,BufReadPre *.howm :set fileformats=dos,unix
autocmd BufNewFile,BufReadPost *.pl :set filetype=perl
autocmd BufNewFile,BufReadPost *.pm :set filetype=perl
autocmd BufNewFile,BufRead *.pl :map <F5> :!perl %:p<CR>
autocmd BufNewFile,BufRead *.pm :map <F5> :!perl %:p<CR>
autocmd BufNewFile,BufRead *.php :map <F5> :!php %:p<CR>
autocmd BufNewFile,BufRead *.tex :map <F5> :call PreviewTeX()<CR>
augroup END
let php_baselib = 1
let php_htmlInString = 1
let php_folding = 1
" ===== プラグイン設定 ===========================
" ----- howm -------------------------------------
if has("win32")
let g:howm_dir="d:/kt/howm/"
else
let g:howm_dir="~/howm/"
endif
let g:howm_filename="%Y-%m.howm"
let g:howm_fileencoding="utf-8"
let g:howm_removeEmpty=1
let g:howm_instantpreview=1
" ----- PHPManual --------------------------------
au BufNewFile,BufRead *.php map K ¥P
" ----- その他のプラグイン -----------------------
runtime ftplugin/man.vim
let keisen_type=2
" ===== 色設定 ===================================
set t_Co=16
if has("gui")
gui
endif
colorscheme torte
" ----- 色の宣言(上書き) -------------------------
hi StatusLine guibg=#4242ff guifg=white gui=bold
hi Title guibg=lightblue guifg=white ctermbg=lightblue ctermfg=white gui=bold
hi Comment ctermfg=darkgreen guifg=lightgreen
hi Statement guifg=lightyellow
hi Type ctermfg=blue guifg=lightcyan
hi Label guifg=#eeee55 guibg=#333300 ctermbg=darkyellow ctermfg=white
hi Pmenu ctermbg=darkgray ctermfg=white guibg=darkgray guifg=white
hi PmenuSel ctermbg=lightblue ctermfg=white guibg=lightblue guifg=white
hi PmenuSbar ctermbg=darkgray ctermfg=lightgray guibg=darkgray guifg=lightgray
hi PmenuThumb ctermbg=darkgray ctermfg=lightgray guibg=darkgray guifg=lightgray
hi TabLine ctermbg=black ctermfg=darkgray gui=bold
hi TabLineFill ctermbg=darkgray ctermfg=black gui=underline
hi TabLineSel ctermbg=blue ctermfg=white
" ----- 色の宣言(オリジナル) ---------------------
hi Label2 guifg=#e0b611 ctermfg=yellow
hi Label3 guifg=#b08d33 ctermfg=darkyellow
hi Bold gui=bold
hi Italic gui=italic
hi Striken guifg=#dddddd ctermfg=gray
hi HR guifg=gray ctermfg=darkgray
hi SuperHR guifg=lightgray guibg=darkcyan gui=italic ctermfg=lightgray ctermbg=blue
hi Citation guibg=#222200 guifg=lightyellow ctermbg=darkyellow ctermfg=black
hi TabCloseBox ctermbg=darkred ctermfg=white
hi RO ctermbg=red ctermfg=white guifg=white guibg=magenta
" ----- 文法定義(見出し) -------------------------
au Syntax * syntax match Label display "^¥* .*"
au Syntax * syntax match Label2 display "¥t¥* .*"
au Syntax * syntax match Label3 display "¥t¥t¥* .*"
au Syntax * syntax match Label2 display "^[¥t ]*[・□■○●][^・].*"
au Syntax * syntax match Label display "^[・□■○●][^・].*"
au Syntax * syntax match Label2 display "^[¥t ]*¥*¥* .*"
au Syntax * syntax match Label3 display "^[¥t ]*¥*¥*¥* .*"
" au Syntax * syntax match HR display ".*-----.*"
au Syntax * syntax match SuperHR display ".*=====.*"
" ----- 文法定義(ハイライト) ---------------------
au Syntax * syntax match Bold display "¥*¥*.*¥*¥*"
au Syntax * syntax match Bold display "<b>.*<¥/b>"
au Syntax * syntax match Italic display "__.*__"
au Syntax * syntax match Italic display "<i>.*<¥/i>"
au Syntax * syntax match Striken display "<s>.*<¥/s>"
au Syntax * syntax region Citation display start=".*>>>" end="<<<"
" ===== 以下、関数 ===============================
" ----- タブライン -------------------------------
function MyTabLine()
let s = ''
let tabname=''
for i in range(tabpagenr('$'))
let tabname=(i+1) . ':' . bufname(tabpagebuflist(i+1)[tabpagewinnr(i+1) -1])
let s .= '%' . (i + 1) . 'T' "マウスクリック用
if i + 1 == tabpagenr()
let s .= '%#TabLineSel#/ ' . tabname . ' %#TabCloseBox#%999X[X]%X%#TabLineSel# ¥'
else
let s .= '%#TabLine#/ ' . tabname . ' %' . (i+1) . 'X[X]%X ¥'
endif
endfor
let s .= '%#TabLineFill#%T%=vim 7.0'
return s
endfunction
function PreviewTeX()
exec "!platex -kanji=utf8 -output-directory=" . &backupdir . " " . expand("%:p")
exec "silent ! start " . &backupdir . "/" . expand("%:t:r") . ".dvi"
endfunction