ぶいあい。
RedHat7.3のviはデフォルトの状態で、全角文字をキチンと対処してくれた。
xを押したら、全角文字でも半角文字でも、1バイトではなく、1文字を消す。
TurboLinux 8 Serverのviはそうでなく、xを押すと、1バイト消すので、全角文字を消すときは気をつけないと、文字が壊れてしまう。
下記のオプション設定で回避できた。
set encoding=japan*1
【参考URL】
難しいことはわからないけど、
- 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になっていた。