Contents

version4 - vimdoc

Home
*version4.txt*  For Vim バージョン 7.3.  Last change: 2006 Apr 24


                  VIM REFERENCE MANUAL    by Bram Moolenaar


このドキュメント Vim 3.0 と Vim 4.0 との違いを一覧にしています。4.0 と述べてい
ますが、これもまたバージョン 4.1, 4.2, などなどがあります。

Vim 3.0 からアップグレードしてきた人にはこのファイルは重要です。不測の問題を避
けるために注意深く読んでおいてください。

'backup' オプションの初期値を変更               |backup-changed|
バックアップファイルの拡張子を変更              |backup-extension|
スワップファイルの構造を変更                    |swapfile-changed|
"-w scriptout" 引数を変更                       |scriptout-changed|
Backspace と Delete キーについて                |backspace-delete|
| のエスケープの方法を変更                      |escape-bar|
キーコードを変更                                |key-codes-changed|
端末のオプションを変更                          |termcap-changed|
'errorformat' オプションを変更                  |errorformat-changed|
'graphic' オプションがなくなりました            |graphic-option-gone|
'yankendofline' オプションがなくなりました      |ye-option-gone|
'icon' と 'title' の初期値を変更                |icon-changed|
'highlight' オプションを変更                    |highlight-changed|
'tildeop' と 'weirdinvert' の略記を変更         |short-name-changed|
"v", "V", "CTRL-V" をビジュアルモードで使う     |use-visual-cmds|
挿入モードでの CTRL-B がなくなりました          |toggle-revins|


'backup' オプションの初期値を変更                       *backup-changed*
---------------------------------

'backup' オプションの初期値はいままではオンでした。この結果オリジナルのファイ
ルがが上書きされた場合はバックアップファイルが常に作られることになっていました。

いまは 'backup'の初期値はオフになっています。ファイルへの書き込みが成功次第バッ
クアップファイルは削除されます。バックアップファイルを取っておきたい場合は
'backup' オプションを vimrc でオンにしておいてください。この変更がなされた理由
は多くの人がバックアップファイルが残ることに Vi-compatible ではない、と不満を
唱えたからです。                                        |'backup'|


バックアップファイルの拡張子を変更                      *backup-extension*
----------------------------------

バックアップファイルの拡張子は今までは ".bak"でした。他のプログラムでもこの拡
張子を使うものがあるのとユーザーでこの拡張子でファイルのコピーを作っておく人も
いるのでもうすこしあいまいな拡張子"~"に変更されました。もう一つの利点はファイ
ル名が短くなることで、ファイル名が短いことを要求されるようなシステムでは便利で
す。例えば、MS-DOSでは "longfile.c" と "longfile.h" のバックアップファイルはど
ちらも"longfile.bak" になっていましたが、いまはこれらは "longfile.c~" と
"longfile.h~" になります。

もし ".bak" という拡張子の方がよいなら 'backupext'オプションで設定することがで
きます。
        :set bex=.bak                                   |'backupext'|


スワップファイルの構造を変更                            *swapfile-changed*
------------------------------

スワップファイルの内容はいくつかのパラメーターに関して拡張されました。Vim はユー
ザー名と編集されたファイルに関する情報を保持しています。これによって復元がより
簡単になり、またスワップファイルがどこで作成されたものかを知ることができるよう
になりました。現在はスワップファイルの最初の部分で異なるバイトオーダーか
sizeof(int) を持つマシーンを区別することができます。そういった異なるマシーン
間でリカバーを行おうとすると、できないという旨のエラーメッセージが出ます。

この変更のため3.0と4.0との間のスワップファイルには互換性がありません。もし3.0
のセッションでクラッシュしたスワップファイルがあるなら Vim 3.0 を使ってそのファ
イルをリカバーして下さい(4.0は使わないでください)。     |swap-file|


"-w scriptout" 引数を変更                               *scriptout-changed*
-------------------------

"vim -w scriptout" は今まではスクリプトアウトファイルに追加するのに使われてい
ました。これはあまり合理的とは言えなかったので新しいファイルを作成するように変
更されました。ファイルが存在する場合は上書きされません(この方法で追加するのに
なれている人が今まであったファイルを破壊するのを防ぐためです。)
[後に再び削除された]                                            |-w|


バックスペースとデリートキー                            *backspace-delete*
----------------------------

3.0ではデリートキーとバックスペースキーは挿入モードではどちらもバックスペース
のように機能していました。つまりカーソルの左側の文字を削除していました。4.0で
はデリートキーは新しい動作をするようになっています: コマンドラインでの動作がそ
うであるようにカーソルの下の文字を削除するのです。カーソルが行末の後に位置して
いて 'bs'オプションがセットされていると2つの行を連結します。
                                                        |<Del>| |i_<Del>|

3.0ではバックスペースキーは CTRL-H として定義されておりデリートキーは CTRL-?
と定義されていました。4.0ではバックスペースとデリートキーのキーコードは
termcap/termlib から読み込まれます。そして Unix では "stty erase" によって修
正されます。このことは使っているキーボードによって削除するキーを決めている人に
とっては便利です。
                                                        |<BS>| |i_<BS>|

もしバックスペースとデリートキーの挿入モードでの動作が前の物がよければ次の行を
vimrc に加えてください。

        inoremap ^? ^H

また <BS> と <Del> キーの値を修正するのに次のものも必要かもしれません:

        set t_kb=^H
        set t_kD=^?

(^H を入力するには CTRL-V CTRL-H と入力し ^? を入力するには CTRL-V CTRL-? もし
くは <Del> と入力します。)

もし t_kb の値が正しく t_kD の値が正しくなければ ":fixdel"コマンドを使ってくだ
さい、t_kb の値によって t_kDをセットします。これは複数の異なるターミナルを使っ
ているときに便利です。                                  |:fixdel|

^H が <BS> か <Del> のように認識されると、バックスペースのように使われます。


| のエスケープの方法を変更                              *escape-bar*
--------------------------

'cpoptions' に 'b'フラグがあると、バックスラッシュによってマッピングと略記の中
で '|'をエスケープするのにバックスラッシュを使うことはできません。CTRL-Vだけが
エスケープさせることができ、これは Vi と同じ仕様です。もし Viコンパチブルで
 Vim を使っていて "\|"をバーを含めるためにマッピングで使っている場合、"^V|" に
することが必要です。参照 |:bar|


キーコードを変更                                        *key-codes-changed*
----------------

キーコードの内部表現が大幅に変わりました。3.0 では1バイトコードは1つのキーを表
すのに用いられました。このことは他の文字セットですでにこれらのコードを使ってい
た場合に問題が生じました。4.0 では3バイトコードが使われ一つの文字が混同されな
いようにしました。                                      |key-notation|

もし vimrc のマッピングに1バイトコードを使っているなら4.0のコードに置き換える
必要があるでしょう。また3バイトコードを直接使う代わりに <> 表記を用いるべきで
す。下の表をご覧下さい。表には3.0のドキュメントで使われていた古い名前も載せら
れています。

<> の中のキーの名前はマッピングで直接使うことができます。つまりこれらの例をコ
ピー/ペーストするかその通りにタイプすることができるのです。<>表記はこの |<>|
で紹介されています。これを動作させるには 'B' と '<'フラグが 'cpoptions' の中に
あってはいけません。|'cpoptions'|

old name        new name          old code      old MS-DOS code
                                hex     dec     hex     dec
<ESC>           <Esc>
<TAB>           <Tab>
<LF>            <NL> <NewLine> <LineFeed>
<SPACE>         <Space>
<NUL>           <Nul>
<BELL>          <Bell>
<BS>            <BS> <BackSpace>
<INSERT>        <Insert>
<DEL>           <Del> <Delete>
<HOME>          <Home>
<END>           <End>
<PAGE_UP>       <PageUp>
<PAGE_DOWN>     <PageDown>

<C_UP>          <Up>            0x80    128     0xb0    176
<C_DOWN>        <Down>          0x81    129     0xb1    177
<C_LEFT>        <Left>          0x82    130     0xb2    178
<C_RIGHT>       <Right>         0x83    131     0xb3    179
<SC_UP>         <S-Up>          0x84    132     0xb4    180
<SC_DOWN>       <S-Down>        0x85    133     0xb5    181
<SC_LEFT>       <S-Left>        0x86    134     0xb6    182
<SC_RIGHT>      <S-Right>       0x87    135     0xb7    183

<F1>            <F1>            0x88    136     0xb8    184
<F2>            <F2>            0x89    137     0xb9    185
<F3>            <F3>            0x8a    138     0xba    186
<F4>            <F4>            0x8b    139     0xbb    187
<F5>            <F5>            0x8c    140     0xbc    188
<F6>            <F6>            0x8d    141     0xbd    189
<F7>            <F7>            0x8e    142     0xbe    190
<F8>            <F8>            0x8f    143     0xbf    191
<F9>            <F9>            0x90    144     0xc0    192
<F10>           <F10>           0x91    145     0xc1    193

<SF1>           <S-F1>          0x92    146     0xc2    194
<SF2>           <S-F2>          0x93    147     0xc3    195
<SF3>           <S-F3>          0x94    148     0xc4    196
<SF4>           <S-F4>          0x95    149     0xc5    197
<SF5>           <S-F5>          0x96    150     0xc6    198
<SF6>           <S-F6>          0x97    151     0xc7    199
<SF7>           <S-F7>          0x98    152     0xc8    200
<SF8>           <S-F8>          0x99    153     0xc9    201
<SF9>           <S-F9>          0x9a    154     0xca    202
<SF10>          <S-F10>         0x9b    155     0xcb    203

<HELP>          <Help>          0x9c    156     0xcc    204
<UNDO>          <Undo>          0x9d    157     0xcd    205

                (not used)      0x9e    158     0xce    206
                (not used)      0x9f    159     0xcf    207


端末のオプションを変更                                  *termcap-changed*
----------------------

端末のオプションの名前は、termcap でこれらのオプションに対応するエントリーの名
前に変更されました。すべての端末のオプションは t_xx という形式の名前を持ち、
xx が termcap でのエントリーの名前です。termcap の設定を誤っているか不完全であ
る場合か、ハイライトのオプションを他の値にセットしている場合でなければ普段はこ
れらのオプションは使われません。                        |terminal-options|

いくつかのキーに関しては termcap のエントリーに名前がないものがあるということ
に注意してください。そう言う場合は <> 表記を代わりに使ってください、またその表
記をする方がどっちにしろよいです。

"t_ti" が "t_mr" (出力を逆にする/元に戻す)に変わり、"t_ts" が "t_ti"(端末を初
期化する)に変わっていることに注意してください。また "t_ti"を使うときは十分に注
意を払ってください。

old name        new name        meaning 
t_cdl           t_DL            指定行数を削除                  *t_cdl*
t_ci            t_vi            カーソルを見えなくする          *t_ci*
t_cil           t_AL            指定行数を挿入する              *t_cil*
t_cm            t_cm            カーソルを移動
t_cri           t_RI            カーソルを指定数右へ移動        *t_cri*
t_cv            t_ve            カーソルを見えるようにする      *t_cv*
t_cvv           t_vs            カーソルを明確に見えるようにする*t_cvv*
t_dl            t_dl            行を削除する
t_cs            t_cs            スクロールする範囲
t_ed            t_cl            画面をクリアする                *t_ed*
t_el            t_ce            行をクリアする                  *t_el*
t_il            t_al            行を挿入する                    *t_il*
                t_da            スクリーンより上の描画が保存される
                t_db            スクリーンより下の描画が保存される
t_ke            t_ke            キーパッドモードから復帰
t_ks            t_ks            キーパッドモードに移行
t_ms            t_ms            強調表示モードでカーソルの動きをセーブする
t_se            t_se            ノーマルモード(アンドゥ t_so)
t_so            t_so            シフトアウトモード(標準出力)
t_ti            t_mr            ハイライトを逆にする
t_tb            t_md            太字モード                      *t_tb*
t_tp            t_me            ハイライト終わり                *t_tp*
t_sr            t_sr            逆にスクロールする
t_te            t_te            termcap モードから出る
t_ts            t_ti            termcap モードに移行 ョ *t_ts_old*
t_vb            t_vb            ビジュアルベル
t_csc           t_CS            スクロール範囲相対カーソル移動モード *t_csc*

t_ku    t_ku    <Up>            上矢印キー
t_kd    t_kd    <Down>          下矢印キー
t_kr    t_kr    <Right>         右矢印キー
t_kl    t_kl    <Left>          左矢印キー
t_sku           <S-Up>          シフト+上矢印キー               *t_sku*
t_skd           <S-Down>        シフト+下矢印キー               *t_skd*
t_skr   t_%i    <S-Right>       シフト+右矢印キー               *t_skr*
t_skl   t_#4    <S-Left>        シフト+左矢印キー               *t_skl*
t_f1    t_k1    <F1>            ファンクションキー1             *t_f1*
t_f2    t_k2    <F2>            ファンクションキー2             *t_f2*
t_f3    t_k3    <F3>            ファンクションキー3             *t_f3*
t_f4    t_k4    <F4>            ファンクションキー4             *t_f4*
t_f5    t_k5    <F5>            ファンクションキー5             *t_f5*
t_f6    t_k6    <F6>            ファンクションキー6             *t_f6*
t_f7    t_k7    <F7>            ファンクションキー7             *t_f7*
t_f8    t_k8    <F8>            ファンクションキー8             *t_f8*
t_f9    t_k9    <F9>            ファンクションキー9             *t_f9*
t_f10   t_k;    <F10>           ファンクションキー10            *t_f10*
t_sf1           <S-F1>          シフト+ファンクションキー1      *t_sf1*
t_sf2           <S-F2>          シフト+ファンクションキー2      *t_sf2*
t_sf3           <S-F3>          シフト+ファンクションキー3      *t_sf3*
t_sf4           <S-F4>          シフト+ファンクションキー4      *t_sf4*
t_sf5           <S-F5>          シフト+ファンクションキー5      *t_sf5*
t_sf6           <S-F6>          シフト+ファンクションキー6      *t_sf6*
t_sf7           <S-F7>          シフト+ファンクションキー7      *t_sf7*
t_sf8           <S-F8>          シフト+ファンクションキー8      *t_sf8*
t_sf9           <S-F9>          シフト+ファンクションキー9      *t_sf9*
t_sf10          <S-F10>         シフト+ファンクションキー10     *t_sf10*
t_help  t_%1    <Help>          ヘルプキー                      *t_help*
t_undo  t_&8    <Undo>          アンドゥキー                    *t_undo*


'errorformat' オプションを変更                          *errorformat-changed*
------------------------------

'errorformat'がコンマで区切っていくつかのフォーマットで定義できるようになりま
した。初めにマッチしたフォーマットが使われます。初期値で多くの一般的なフォーマッ
トを認識できるように調整されました。                    |errorformat|

コンマを含むフォーマットがある場合バックスラッシュを前置する必要があります。こ
の時 :set コマンドが一つ取ってしまうのでバックスラッシュは二つ重ねてください。


'graphic' オプションがなくなりました                    *graphic-option-gone*
------------------------------------

'graphic' オプションは <~> と 0xa0の文字をスクリーンに直接表示させるために使わ
れていました。いまは 'isprint'オプションがこのかわりになりますし、もっと強化さ
れています。初期の設定は同じで前に'graphic' オプションを vimrc でセットしてい
る場合のみ気をつける必要があります。                    |'isprint'|


'yankendofline' オプションがなくなりました              *ye-option-gone*
------------------------------------------

'yankendofline'オプションがなくなりました。かわりに次のマッピングを使うことが
できます。
        :map Y y$


'icon' と 'title' オプションの初期値を変更              *icon-changed*
------------------------------------------

"Thanks for flying Vim" のタイトルが残るのを避けるために、'title' オプションは
もとのタイトルを復元できる場合にのみ初期値でオンになるようになりました。
                                                        |'title'|

'icon' オプションの初期値は 'title'オプションのように元の値を復元できるかどう
かによるようになりました。もしアイコンのタイトルを変更するのが嫌であれば次の行
をvimrc に加えてください。                               |'icon'|
        :set noicon


'highlight' オプションを変更                            *highlight-changed*
----------------------------

'i'フラグは反転を意味するフラグではなく斜体のハイライトの意味になりました。今
まで 'i' フラグが意味していた反転ハイライトには 'r'フラグが使われるようになり
ました。普通はこの変更による違いは気づかないかもしれません。というのはほとんど
の端末では斜体表示はサポートされていない上、斜体表示が使えないときは反転モード
が使われるからです。                                    |'highlight'|

'highlight' オプションでセットされるアイテムのうち定義されていないアイテムは従
来は反転モードで表示されていましたが、'highlight' でのそのアイテムのデフォルト
で設定されている値から引っ張ってきてそれが使われるようになりました。


'tildeop' と 'weirdinvert' の略記名を変更               *short-name-changed*
-----------------------------------------

'to' ( 'tildeop' の略記名) は 'top' に変更               |'tildeop'|
'wi' ( 'weirdinvert' の略記名) は 'wiv' に変更           |'weirdinvert'|

これは Vi が 'wi' を 'window' の略記名に使っており 'to' を 'timeout'の略記名と
して使っているために変更されました。このことはこれらのオプションをセットしよう
とした場合エラーメッセージはでないけれども動作が違ってくることになります。


ビジュアルモードで "v", "V", "CTRL-V" を使う            *use-visual-cmds*
--------------------------------------------

ビジュアルモードにおいては "v", "V", "CTRL-V"はビジュアルモードを終了させるの
に使われてきました。いまはビジュアルモードが一致するタイプにおいてのみ終了させ
るのに使われるようになりました。そうでない場合はビジュアルモードのタイプが変わ
ります。どんな状況でもビジュアルモードをなにも行わずに終了させるにはESC キーを
利用してください。                                      |v_V|


挿入モードでの CTRL-B を削除                            *toggle-revins*
----------------------------------

いままでは CTRL-B は 'revins'オプションのオン/オフをトグルするのにつかわれてい
ました。このことは、この動作を知らないで誤ってCTRL-Bを押してしまった場合、どう
やってアンドゥしてよいか気づくのが困難でした。ほとんどの人はこの機能を使ってい
ないので初期値では使えないようにしました。もしこの機能を使いたいならばコンパイ
ルするときにRIGHTLEFT を feature.h で define してください。         |'revins'|

 vim:tw=78:ts=8:ft=help:norl: