.vimrc晒し

.vimrcを晒してみる。

コメント求む


2008年08月17日18:10現在

"Use vim
"vim 使いますよって宣言
set nocompatible

"backgroundは明るいと教えてあげる
" light or black
set background=light

"配色の指定
"colorscheme desert

set title

" number(行数)を表示
set number

" 強調表示(色)on or off
syntax on

"一行に長い文章を書いていても
"自動折り返しをしない
set textwidth=0

"backupファイルを作らない
"set nobackup
"やっぱり作る
"以下の設定で.vim-backupに*~や*.swpファイルができる
" $ mkdir $HOME/.vim-backup とやる必要があり
"set backup
"set backupdir=$HOME/.vim-backup
"let &directory = &backupdir
"やっぱいらない

"コマンド、検索パターンの履歴数
set history=1000

"加減算コマンドCtrl+a,Ctrl+x
"alpha アルファベット
"octal 8進数
"hex   16進数
set nrformats+=alpha
set nrformats+=octal
set nrformats+=hex

"カーソルが何行目の何列目に置かれているか表示する
"でも、statuslineで指定しているので意味ないのかと
"set ruler

"poweful backspace
"backspaceの挙動を強化する
"indentはオートインデントの空白文字を削除できる
"eolは行の先頭で<BS>を押すと前の行の改行文字を削除できる
"startはC+uやC+wで入力した文字以外(最初から行にある文字)も削除できる
set backspace=indent,eol,start

"%での移動に<>も追加
"下の3つはdefaultで移動可能
"{}
"[]
"()
set matchpairs+=<:>

"自動でindentしてくれる
"autoindentとcindentがあるが
"個人的にはsmartindentが一番賢いと思ってる
set smartindent

" タブの代わりに空白を
set expandtab
" 自動インデントのスペース数
set shiftwidth=2
" タブを入力したのときのスペース数
set tabstop=2
" タブを削除するときに
set softtabstop=2


" 現在のmodeを表示
" ビジュアル?
" 挿入?
" コマンド?
set showmode

" 対応する括弧に一時的に移動する
" たとえば(と入力してから)を入力すると
" (に一時的にカーソルが移動する
" )に戻ってくるまでの時間は
" オプションmatchtimeで指定可能
set showmatch
" (値/10)秒
set matchtime=5

" コマンドを表示する
set showcmd



set wildmenu


" 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索が末尾まで行ったら先頭へ戻る
"set wrapscan
" インクリメンタルサーチ
set incsearch
" 検索結果をハイライト
set hlsearch
"ハイライト残ってると気が散るのでさようなら
nmap <C-j><C-j> :nohlsearch<CR><Esc>

"表示行単位で移動してくれる
"1行が長い場合に便利だったりする
nnoremap j gj
nnoremap k gk

" ステータスラインを表示
" 2に設定するといつでも表示
set laststatus=2
" 表示する内容の編集
set statusline=\ [%n] "number of buffer
set statusline+=\ %F "file name
set statusline+=\ %7(%m\ %r%) "読み込み専用ファイルはRO,変更されたら+とか
set statusline+=%{&fileencoding}\ %{&fileformat}\ %{&filetype}
set statusline+=%=\ (%l,%c) "行、列表示
set statusline+=%=\ \ \ [%b,0x%B] "ascii文字コード表示


" 前回終了したカーソル行に移動
" 最近のvimでは設定しなくてもdefaultらしいけど一応
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif


"Shiftを使った画面移動
nmap <S-h> <C-W>h
nmap <S-j> <C-W>j
nmap <S-k> <C-W>k
nmap <S-l> <C-W>l


autocmd BufNewFile *.pl 0r ~/.vim/skelton/sk.pl
autocmd BufNewFile *.sh 0r ~/.vim/skelton/sk.sh
autocmd BufNewFile *.c 0r ~/.vim/skelton/sk.c




"usキーボード
nmap ; :
"shellへの移動を簡単に
nmap ,, <C-z>
"escは打ちにくいので
imap <C-j> <esc>

"bufferが編集中でも他のファイルが開ける
set hidden
"外部のeditorで変更されたら自動でfileを読み直す
set autoread

"全角スペースを目立たせる
"全角スペースは以下の設定だと赤い下線
highlight ZenkakuSpace cterm=underline ctermfg=red guibg=white
match ZenkakuSpace / /

"plugin miniBufの設定
"Spaceでbuffer移動
":bnコマンドはpluginのminibufexpl.vimのやつ
"pluginは~/.vim/pluginに入ってる
nmap <Space> :bn<CR>
" minibufexpl.vimの変数
" よく分かってません
" でも、こう書けって言われた
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplSplitBelow = 0
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplSplitToEdge = 1


"file exploreを開いてくれるけど
"あんまり使ってない
"map <C-W><C-V> :Vexplore!<CR>
"map <C-W><C-H> :Hexplore<CR>
"map! <C-W><C-V> <Esc>:Vexplore!<CR>
"map! <C-W><C-H> <Esc>:Hexplore<CR>

"plugin YankRing.vimの利用のため
"前は使ってたけど、今はない
"nmap ,y :YRShow<CR>


"plugin Autocompletionの利用のため
"補完候補completeの設定
"以下は補間の優先順位の設定
"~/.vim/dictに自分で作った辞書ファイルとかも置ける
"let g:AutoComplPop_CompleteOption='.,w,b,u,t,i,k~/.vim/dict/c.dict'
"補間バーの色設定
"highlight Pmenu ctermbg=4
"highlight PmenuSel ctermbg=1
"highlight PMenuSbar ctermbg=4


"以下全部、引用。
"まったく理解してない。
"ずんwikiより
" 文字コードの自動認識
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