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 で報告済み。本体にも取り込まれているらしい。
|