ESC

ぶいあい。

RedHat7.3のviはデフォルトの状態で、全角文字をキチンと対処してくれた。
xを押したら、全角文字でも半角文字でも、1バイトではなく、1文字を消す。


TurboLinux 8 Serverのviはそうでなく、xを押すと、1バイト消すので、全角文字を消すときは気をつけないと、文字が壊れてしまう。


下記のオプション設定で回避できた。

set encoding=japan*1


【参考URL】

  1. Vimの全オプション
  2. EUCコードのソースファイルを見る方法(Cygwin なんでも掲示板より)
  3. vi(vim)でUTF-8を扱いたい


難しいことはわからないけど、

encoding
初期値:"latin1"または環境変数 $LANG によって決まる値
Vimの通常使う文字エンコーディング
Vim内部で使われる文字エンコーディングを設定する。
fileencoding
初期値:"" カレントバッファ内のファイルの文字エンコーディングを設定する。
'encoding' の値と異なるとき、ファイルの読み書きの際に文字エンコーディングの変換が行われる
fileencodings
初期値:"ucs-bom", オプション 'encoding' の値がユニコードに設定されたときは "ucs-bom,utf-8,latin1"
Vimが表示できる文字エンコーディングのリスト。
このオプションには、ファイルの編集時に考慮される文字エンコーディングのリストを指定する。ファイルが読み込まれたとき、Vimはこのオプションの値の先頭の文字エンコーディングを使おうとする。そのときエラーが発見されると、値のリスト内で次に並んでいるエンコーディングが試される。有効なエンコーディングが見つかると、オプション 'fileencoding' の値がそれに設定される。全て失敗した場合は、オプション 'fileencoding' の値は空に設定される。これはオプション 'encoding' の値が使われていることを表す。
ということらしい。
詳細は、参考URLの1.に書いてあります。


ふむ。
encodingをjapanと設定すると、set allで確認したトキ、encodingにeuc-jpが入ってきているし、とりあえずは、キチンと動作している模様。


じ〜っくりと読んで、おぼろげには理解したカンジ。
viって奥が深いにゃ〜…。

*1:RedHat7.3ではeuc-jp、TurboLinux 8 Serverではlatin1になっていた。