Vim 設定メモ
Vim を使いやすくする設定。nvi が入っていない環境向け。
または、nvi パッケージが腐っている Debian GNU/Linux 5.0 など向け。Debian GNU/Linux 5.0 の nvi は、文字コード自動判別が悪さをしてしまい、ちょっとでも文字コード変換がうまくいかないと、そこでデータを truncate してしまうバグがあるため使うのは危険。#496305 - Cannot handle chars with top bit set under LOCALE=C - Debian Bug report logs
Debian GNU/Linux 6.0 の nvi は LANG=C (LC_CTYPE=C) にして使えば調子が良い。
.vimrc
set cp nohls t_Co= vi= shm+=It enc=latin1 isp=
if has("multi_lang") language C endif if has("autocmd") filetype off endif
cp: compatible, 互換モード
nohls: 検索キーワードのハイライトをオフにする
t_Co=: カラー表示禁止
vi=: .viminfo を使用しない
shm+=It: shortmess. 起動時のメッセージを表示しない。ファイル名が長すぎる場合は、続きを表示させるためのキー入力を待たず、省略して表示する
enc=latin1: 文字エンコーディングを latin1 にする。文字コード判定をせず、任意のバイト列を受け付ける
isp=: 表示可能文字を ASCII に限定する
if has("multi_lang"): Vim が --enable-gui=no --with-features=tiny でコンパイルされている場合のエラーを回避するための if 文
language C: 各種メッセージを英語にする
if has("autocmd"): vim-tiny でエラーになるのを回避するための if 文
filetype off: ファイルタイプに応じた文法解釈等を一切行わない
やりたいけどできていない設定 (or bugs):
行頭で s または lc0 した場合に、$ が表示されず文字が削除されてしまうのを、通常の vi と同じように $ 表示となるようにする設定
c0 による編集後に、行頭で . を押してリピート (もちろん失敗する) の後、行頭ではない場所で . を押してリピートを押した時に、通常の vi のように正しくリピートする設定
この操作をすると、vim は入力モードに入ったままになるという、どう見ても vi ではない動作をする (通常の vi では、. で入力モードに入ることはできない)
この他、行頭で c0 を操作するとその次の . によるリピートがうまくいかないという問題もある
パッチ
上の 2 点を解決するための自分用パッチを作成した。vim-jp で報告済み。本体にも取り込まれているらしい。