読者です 読者をやめる 読者になる 読者になる

よろしい、ならばエディタ戦争だ 3

さぁ諸君 .vimrcを作るぞ

環境に応じて色々書き換えることを想定し、.vimrcはどのファイルを読み込むかだけを記す。

~/dotfiles/_vimrc

" -*- encoding:utf-8 -*-

let locate='jp'
"let locate='en'

if has('unix')
    source ~/dotfiles/vim/basic.vim
endif


"日本語環境限定の設定ファイル読み込み
if locate=='jp'
    source ~/dotfiles/vim/japanese.vim
endif

特に想定利用用途を考えていないvim設定ファイル

~/dotfiles/vim/basic.vim

" -*- encoding:utf-8 -*-

" 自動色付け
syntax on

" 行番号を表示
set number
" ファイル名を表示
set title
" 自動インデント
set smartindent
" tab保管 → リスト表示&共通部分まで自動入力
set wildmode=list:longest
" tab入力をspace入力へ
set expandtab
" backspaceでtabに相当するスペースを削除
set smarttab
" tab文字で移動するスペース量
set tabstop=4
" tab入力で入力されるspace文字量
set shiftwidth=4
" カーソルがあるラインを強調
set cursorline
" 80列目を色付け
set colorcolumn=80
" ビープ音を文字表示へ変更
set visualbell
" backspaceで特殊文字を消せるように
set backspace=indent,eol,start
" 改行を無効化
set nowrap
" 不可視文字を表示
set list
" 不可視文字を設定
set listchars=tab:>.,eol:$,trail:-,nbsp:%,extends:>,precedes:<
" ステータスを常時表示(2=always)
set laststatus=2
" 入力中のコマンドをステータスに表示する
set showcmd
" activate modeline
set modeline
" インデントで折りたたむ
set foldmethod=indent
" 折りたたみ開閉バーを左側に表示
set foldcolumn=1


" 検索関連
    " 検索を大文字小文字区別しない
    set ignorecase
    " 検索文字から動的に大文字小文字区別する
    set smartcase
    " 終わりまで検索したら頭に戻る
    set wrapscan
    " 検索入力中に検索を実施する
    set incsearch
    " 検索対象文字をハイライト表示する
    set hlsearch
    " 256色を有効にする
    set t_Co=256

    " <Esc>2回でハイライトを消す
    nnoremap <Esc><Esc> :nohlsearch<CR><Esc>


" マッピング
    " Y: カーソルから行末までヤンク
    nnoremap Y y$
    " +: 数値をプラス1
    nnoremap + <C-a>
    " -: 数値をプラス1
    nnoremap - <C-x>


if has('mouse')
    set mouse=a
endif

日本語環境の場合読み込む設定ファイル。全角スペースをハイライトさせている。

~/dotfiles/vim/japanese.vim

scriptencoding utf-8

function! ZenkakuSpace()
    highlight ZenkakuSpace cterm=reverse ctermfg=DarkMagenta gui=reverse guifg=DarkMagenta
endfunction

augroup ZenkakuSpace
    autocmd!
    autocmd ColorScheme       * call ZenkakuSpace()
    autocmd VimEnter,WinEnter * match ZenkakuSpace / /
augroup END

call ZenkakuSpace()