最終更新:2009-11-06 (金) 09:26:57 (3926d)  

.vimrc
Top / .vimrc

syntax on

set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=0
set number
set smartindent
set incsearch

autocmd FileType mate setlocal noexpandtab

OSX用

"-------------------------------------------------------------------------------
set nocompatible       " vimですよ
 
"-------------------------------------------------------------------------------
" ステータスライン
set laststatus=2 " 常にステータスラインを表示
set statusline=%<%F\ %r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v(ASCII=%03.3b,HEX=%02.2B)\ %l/%L(%P)%m
 
 
"-------------------------------------------------------------------------------
" 基本設定
let mapleader = ","            " キーマップリーダー
set scrolloff=5                " スクロール時の余白確保
set textwidth=0                " 一行に長い文章を書いていても自動折り返しをしない
set nobackup                   " バックアップ取らない
set autoread                   " 他で書き換えられたら自動で読み直す
set noswapfile                 " スワップファイル作らない
set hidden                     " 編集中でも他のファイルを開けるようにする
set backspace=indent,eol,start " バックスペースでなんでも消せるように
set formatoptions=lmoq         " テキスト整形オプション,マルチバイト系を追加
set vb t_vb=                   " ビープをならさない
set browsedir=buffer           " Exploreの初期ディレクトリ
set whichwrap=b,s,h,l,<,>,[,]  " カーソルを行頭、行末で止まらないようにする
set showcmd                    " コマンドをステータス行に表示
 
filetype indent off            " ファイルタイプによるインデント
filetype plugin off            " ファイルタイプごとのプラグイン
 
"-------------------------------------------------------------------------------
" 表示
set showmatch         " 括弧の対応をハイライト
set showcmd           " 入力中のコマンドを表示
set number            " 行番号表示
set list              " 不可視文字表示
set listchars=tab:>.,trail:_,extends:>,precedes:<" 不可視文字の表示形式
set display=uhex      " 印字不可能文字を16進数で表示
 
" 全角スペースをハイライト
if has("syntax")
    syntax on
    function! ActivateInvisibleIndicator()
        syntax match InvisibleJISX0208Space " " display containedin=ALL
        highlight InvisibleJISX0208Space term=underline ctermbg=Cyan guibg=Cyan
"        syntax match InvisibleTrailedSpace "[ \t]\+$" display containedin=ALL
"        highlight InvisibleTrailedSpace term=underline ctermbg=Red guibg=Red
"        syntax match InvisibleTab "\t" display containedin=ALL
"        highlight InvisibleTab term=underline ctermbg=Cyan guibg=Cyan
    endf
    augroup invisible
        autocmd! invisible
        autocmd BufNew,BufRead * call ActivateInvisibleIndicator()
    augroup END
endif
 
" カレントウィンドウにのみ罫線を引く
augroup cch
  autocmd! cch
  autocmd WinLeave * set nocursorline
  autocmd WinEnter,BufRead * set cursorline
augroup END
 
 
"-------------------------------------------------------------------------------
" インデント
set autoindent
set smartindent
set cindent
" softtabstopはTabキー押し下げ時の挿入される空白の量,0の場合はtabstopと同じ,BSにも影響する
set tabstop=4 shiftwidth=4 softtabstop=0
set noexpandtab " タブをスペースに展開しない
 
 
"-------------------------------------------------------------------------------
" 補完・履歴
set wildmenu           " コマンド補完を強化
set wildchar=<tab>     " コマンド補完を開始するキー
set wildmode=list:full " リスト表示,最長マッチ
set history=1000       " コマンド・検索パターンの履歴数
set complete+=k        " 補完に辞書ファイル追加
 
 
"-------------------------------------------------------------------------------
" 検索設定
set wrapscan   " 最後まで検索したら先頭へ戻る
set ignorecase " 大文字小文字無視
set smartcase  " 大文字ではじめたら大文字小文字無視しない
set incsearch  " インクリメンタルサーチ
set hlsearch   " 検索文字をハイライト
 
"選択した文字列を検索
vnoremap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
"選択した文字列を置換
vnoremap /r "xy:%s/<C-R>=escape(@x, '\\/.*$^~[]')<CR>//gc<Left><Left><Left>
 
 
"-------------------------------------------------------------------------------
" エンコーディング関連
 
" 改行文字
set ffs=unix,dos,mac
 
" デフォルトエンコーディング
set   encoding=utf-8
 
if has('win32') && has('kaoriya')
  set   ambiwidth=auto
else
  set   ambiwidth=double
endif
 
if has('iconv')
  let s:enc_euc = 'euc-jp'
  let s:enc_jis = 'iso-2022-jp'
 
  if iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'euc-jisx0213,euc-jp'
    let s:enc_jis = 'iso-2022-jp-3'
  endif
 
  set   fileencodings&
  let &fileencodings = &fileencodings.','.s:enc_jis.',cp932,'.s:enc_euc
 
  unlet s:enc_euc
  unlet s:enc_jis
endif
 
if has('win32unix')
  set   termencoding=cp932
elseif !has('macunix')
  set   termencoding=euc-jp
endif
 
 
"-------------------------------------------------------------------------------
" キーバインド関係
 
" 行単位で移動(1行が長い場合に便利)
nnoremap j gj
nnoremap k gk
 
" バッファ周り
nmap <silent> <C-l> :bnext<CR>
nmap <silent> <C-h> :bprevious<CR>
nmap <silent> ,l    :BufExplorer<CR>
 
" 検索などで飛んだらそこを真ん中に
nmap n nzz
nmap N Nzz
nmap * *zz
nmap # #zz
nmap g* g*zz
nmap g# g#zz
nmap G Gzz
 
"usキーボードで使いやすく
nmap ; :
 
 
"-------------------------------------------------------------------------------
" プラグインごとの設定
 
" migemo.vim
if has('migemo')
  set migemo
  set migemodict=/opt/local/share/migemo/utf-8/migemo-dict
endif
 
" YankRing.vim
nmap ,y :YRShow<CR>
 
" qfixhowm.vim
set runtimepath+=~/.vim/plugin/qfixapp
let QFixHowm_Key                   = ','
let howm_dir                       = '~/Documents/howm-vim/'
let howm_filename                  = '%Y/%m/%Y-%m-%d-%H%M%S.howm'
let howm_keywordfile               = '~/Documents/howm-vim/.howm-keys'
let howm_fileencoding              = 'utf-8'
let howm_fileformat                = 'unix'
let mygrepprg                      = 'grep'
let MyGrep_ShellEncoding           = 'utf-8'
let QFixHowm_RecentDays            = 10
let QFixHowm_SaveTime              = 2
let QFixHowm_RecentMode            = 2
let QFixHowm_Replace_Title_Pattern = '^=\s*\(\[[:a-zA-Z0-9 ]*\]\s*\)\=$'
let QFixHowm_Replace_Title_Len     = 64
let QFixHowm_MruFile               = '~/Documents/howm-vim/.howm-mru'
let QFixHowm_MruFileMax            = 20
let QFixHowm_ShowTodoOnMenu        = 1
let QFixHowm_ShowSchedule          = 10
let QFixHowm_ShowScheduleTodo      = 10
let QFix_CloseOnJump               = 1
let QFix_Height                    = 25
let QFix_SearchPathEnable          = 1
let QFix_SearchPath                = '~/Documents/howm-vim/'
"if has('mac')
"  let MyOpenURI_cmd = "call system('/usr/bin/browser %s &')"
"endif
 
" vcscommand.vim
set runtimepath+=~/.vim/plugin/vcscommand
 
 
"-------------------------------------------------------------------------------
" ユーティリティ
 
" 現在開いているファイルのある場所に常にcdする
au   BufEnter *      exec ":lcd " . expand("%:p:h")