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 を操作するとその次の . によるリピートがうまくいかないという問題もある

パッチ