Vimを使いこなすためのワザ
LinuxやUnixでおなじみのVi。VimとかGvimとかも同じようなやつですが、コマンドやショートカットが特殊なため、初めての人には誤操作が多く、敷居が高いのはやむを得ないってところでしょうか。
私自身もまだまだ知らないことが多いので、参考サイトとともにまとめてみることにした。っていうかこういう情報にすぐにたどり着けないんだな。多分。
まずLinuxでは標準的だけど、Windowsで使うにはインストールが必要。日本語化対応されているので概ね問題なし。以下のサイトからダウンロード。
デフォルトの設定は気に食わないので、C:\Program Files\Gvim\以下にできる_vimrc(Linuxの場合はユーザーのホームディレクトリ以下の.vimrc)ファイルをテキストエディタで開き以下のような設定に変更。あくまでも最低限の設定。もはやどのサイトを参考にしたのかは不明。これはWindows用の設定でLinuxで使えるのかはわかりません。「set ~」の部分はLinuxでも使えます(多分)。文字コード設定のために長くなってます。
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
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'
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'
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
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
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
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
"カラープロファイルを設定
colorscheme torte
"行番号を設定
set number
"バックグラウンドの色を設定
set background=dark
"右端での改行しない
set nowrap
"スクロール量を設定
set sidescroll=1
"フォントとフォントサイズの設定
set guifont=MS_ゴシック:h10
"ウィンドウの高さ(行数)の設定
set lines=50
"ウィンドウの幅(文字数)の設定
set columns=150
" スワップファイルを作らない
set noswapfile
" バックアップファイルを作らない
set nobackup
で実際の使い方は以下のサイトを参考にする。
- http://d.hatena.ne.jp/ruicc/20081122/1226837833
- http://www.ne.jp/asahi/hishidama/home/tech/unix/vi.html
- http://d.hatena.ne.jp/ykmbpp/20080701/1214931346
コマンドモードの使い方は最低限覚えなければならない。特に「:w(書き込み)」「:q(終了)」「:wq(書き込みして終了)」「:q!(強制終了)」は必須。他にもコマンドモード、挿入モードで便利な使い方ができるので覚えると仕事が速くなる。Linux上で何かする際もこの使い方を覚えておけば、間違いも減らせるかも。使い方が特殊なので、覚えるまではちょっと苦労するかもだけど。
詳しいことはここでは書かない。リンク先で勉強してくれ。