vimrc

オンラインストレージが使えないなら,ブログで記事にしておけばどこからでも見れるじゃない?
という理論からvimrcをここに置きます.

スーパーpre記法の効果はすばらしい.

" ~/.vimrc : vim config-file
"
" Author: XXX
" Last change:  2010/06/21
"------------------------
" color関連
"------------------------
" 色をつける
syntax on

" 背景色はクロであることをvimに伝える
" 全体的に明るい文字を利用するようになる
set background=dark

"highlight SatausLine cterm=NONE ctermfg=white ctermbg=black
"highlight LineNr ctermfg=darkyellow
"highlight Nontext ctermfg=darkgrey
"highlight Folded ctermfg=blue
"highlight SpecialKey ctermfg=darkcyan
"highlight Statement ctermfg=darkyellow
"highlight Comment ctermfg=darkblue
"highlight Type ctermfg=darkgreen

" 全角スペースを視覚化
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=white
match ZenkakuSpace / /

"------------------------
" display関連
"------------------------
" 起動時のメッセージを消す
set shortmess+=I
" スクロール時の余白確保
set scrolloff=5         
" 行番号をつける
set number
" display incomplete commands
set showcmd
" 長い行を折り返す
set wrap
"タイトルバーにファイル名を表示
"set title
" ルーラを非表示
set noruler
" ヴィジュアルベルを鳴らさない(鳴らす場合は,visualbellのみ)
set visualbell t_vb=
" 常にステータス行を表示
set laststatus=2
"ステータスラインに文字コードと改行文字を表示する
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
" 現在のモードを表示する
set showmode


" -------------------
" 編集
" -------------------
" インデントの幅
set shiftwidth=2
" 自動的にインデント
set autoindent
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
" コマンド補完機能
set wildmenu
" 対応する括弧を表示
"set showmatch
" 対応する括弧表示を無効化
let loaded_matchparen = 1
" テキスト挿入中の自動折り返しを日本語に対応させる
set formatoptions+=mM


" -------------------
" タブ
" -------------------
" タブをスペースに置き換える
set expandtab
" ファイル中のTab文字を画面上の見た目で何文字幅にするか設定
set tabstop=4
" 自動で挿入されるタブの幅
set shiftwidth=4
" キーボードで<Tab>キーを押したときに挿入される空白の量
set softtabstop=0 "0ならtabstopで指定した量
" タブにshiftsidthを使用
" set smarttab 
" Tab の表示
"set list
" タブを>----で表示
"set listchars=tab:>-
" タブを>    で表示
" set listchars=tab:>\


" -------------------
" 文字コード関連
" -------------------
" ターミナルの文字コード
"set encoding=utf-8

"set termencoding=utf-8

"set fileencoding=utf-8

" 認識して欲しい文字コード
"set fileencodings=iso-2022-jp,cp932,euc-jp,utf-8
"set fileencodings=utf-8

" 文字コードの自動認識
if &encoding !=# '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
  " 定数を処分
  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

" -------------------
" 検索
" -------------------
" 検索文字列が小文字の場合は大文字小文字を区別なく検索する(noignorecase)
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する(nosmartcase)
set smartcase
" 検索文字をハイライトする
set hlsearch
" インクリメンタルサーチ
set incsearch


" -------------------
" その他
" -------------------
" バックアップするorしない
 set backup
" バックアップファイルの場所
 set backupdir=/your/home/log/vim
" スワップファイルを作成するディレクトリ
" set dir=~/tmp
" 覚えておく履歴の数
set history=50    
" 編集中の内容を保ったまま別の画面に切替えられるようにする
set hid

" Ruby on Railsモードへの布石
filetype on
filetype indent on
filetype plugin on
" :R      コントローラとビューの切り替え
" ショートカット

"" Ruby mode
"au FileType ruby :set nowrap tabstop=2 tw=0 sw=2 enc=utf-8 fenc=utf-8
"au FileType html :set nowrap tabstop=2 tw=0 sw=2 enc=utf-8 fenc=utf-8

"au BufNewFile *.html  :set ft=html
"au BufNewFile *.css   :set ft=html

"au BufNewFile *.rhtml :set ft=ruby
"au BufNewFile *.rb    :set ft=ruby
"au BufNewFile *.yml   :set ft=ruby 
imap <C-b> <C-x><C-o>

"" GNU global
" Tips: ジャンプ前に戻るにはCtrl-o, 進むにはCtrl-iを使うとよい
" input Gtags
map <C-g> :Gtags 
" 検索結果を前方,後方ジャンプする
map <C-n> :cn<CR>
map <C-p> :cp<CR>
" カーソル位置の単語を検索
map <C-j> :GtagsCursor<CR>
" 現在のファイル内の定義を一覧する
map <C-l> :Gtags -f %<CR>