Merge branch 'KaoriYa'
[MacVim/KaoriYa.git] / runtime / doc / starting.jax
blobfc5dbba55055717cd5af43e4fc53def4cb76c676
1 *starting.txt*  For Vim バージョン 7.0.  Last change: 2006 Apr 25
4                 VIMリファレンスマニュアル    by Bram Moolenaar
7 Vimる                                                    *starting*
9 1. Vimの起動引数             |vim-arguments|
10 2. Amiga版のVim                   |starting-amiga|
11 3. eVimについて                     |evim-keys|
12 4. 初期化                  |initialization|
13 5. $VIM と $VIMRUNTIME           |$VIM|
14 6. サスペンド                        |suspend|
15 7. 設定の保存                        |save-settings|
16 8. ビューとセッション            |views-sessions|
17 9. viminfo ファイル         |viminfo-file|
19 ==============================================================================
20 1. Vimの起動引数                                     *vim-arguments*
22 たいていは1つのファイルを編集するために次のようなコマンドでVimを起動する
24         vim filename                                    *-vim*
26 より一般的に言えば、Vimは次の書式で起動することができる:
28         vim [option | filename] ..
30 オプション引数とファイル引数は混在でき、幾つでも与える事ができる。しかし引数を
31 取るオプションには注意が必要である。
33 さまざまなViのバージョンとの互換性に付いては|cmdline-arguments|を参照。
35 正確には、以下の5つの項目から1つを選んで編集が開始される:
37                                                         *-file* *---*
38 filename        1つ以上のファイル名が与えられた場合。まずは最初の1つが編集ファ
39                 イルとしてバッファに読み込まれる。カーソルはそのバッファの1行
40                 目に置かれる。
41                 '-'で始まるファイル名を指定するには、オプションと区別するため
42                 に、引数に"--"を置く。例: >
43                         vim -- -filename
44 <               "--"の後の全ての引数はファイル名として解釈されるので、その他の
45                 オプションや引数"+command"は使用することができない。
47                                                         *--*
48 -               この引数はExモードで起動するかどうかで意味が異なる。
50                 ノーマルモードで起動する場合: >
51                         vim -
52                         ex -v -
53 <               新しいバッファに、標準入力を読み込んで編集を始める。このコマン
54                 ドを使用するとまず標準入力を読み込み、それから標準エラー出力を
55                 読み込む。例: >
56                         find . -name "*.c" -print | vim -
57 <               バッファには未保存のテキストが含まれるので、「変更(modified)」
58                 のマークがつけられる。ただし読み込み専用モードで起動する場合は
59                 除く。例: >
60                         ls | view -
62                 Exモードで起動する場合: >
63                         ex -
64                         vim -e -
65                         exim -
66                         vim -E -
67 <               サイレントモードで起動する。|-s-ex|を参照。
69                                                         *-t* *-tag*
70 -t {tag}        タグを開く。{tag}がtagsファイルから検索され、関連づけられた
71                 ファイルが現在のファイルとされ、関連づけられたコマンドが実行さ
72                 れる。大抵これはCプログラムを編集するときに使用され、"tag"は関
73                 数名である事が多い。それにより、その関数を含むファイルが自動的
74                 に開かれ、カーソルがその関数の定義位置に設定される(|tags|を参
75                 照)。
77                                                         *-q* *-qf*
78 -q [errorfile]  クイックフィックスモードで起動。 [errorfile]に指定したファイル
79                 が読み込まれ最初のエラーが表示される。|quickfix|を参照。
80                 [errorfile]が与えられない場合、オプション'errorfile'がファイル
81                 名として使用される。省略値に関しては'errorfile'を参照。
82                 {Vi にはない}
84 (nothing)       上記の4つのうち、どれも指定せずにVimを起動すると、新しいバッ
85                 ファが用意される。それは名前のない空のバッファである。
88 起動時のモードはプログラム名を"vim"とは別の名前にすることで指定できる。それは
89 次のようにオプションを与えたのと同じである:
90 ex      vim -e      Exモードで起動(|Ex-mode|を参照)。                 *ex*
91 exim    vim -E      改良版Exモードで起動(|Ex-mode|を参照)。      *exim*
92                         (通常はインストールされない)
93 view    vim -R      読み込み専用モードで起動(|-R|を参照)。          *view*
94 gvim    vim -g      GUIで起動(|gui|を参照)。                       *gvim*
95 gex     vim -eg     GUIのEXモードで起動。                           *gex*
96 gview   vim -Rg     GUIの読み込み専用モードで起動。               *gview*
97 rvim    vim -Z      "vim"の制限モードで起動(|-Z|を参照)。        *rvim*
98 rview   vim -RZ     "view"の制限モード。                           *rview*
99 rgvim   vim -gZ     "gvim"の制限モード。                           *rgvim*
100 rgview  vim -RgZ    "gview"の制限モード。                          *rgview*
101 evim    vim -y      簡易操作のVim(|-y|を参照)                       *evim*
102 eview   vim -yR     "evim"と同じ。読み込み専用モード。                    *eview*
103 vimdiff vim -d      差分モードで起動|diff-mode|
104 gvimdiff vim -gd    差分モードで起動|diff-mode|
106 これらの別名の後ろに付けられる文字は無視される。たとえばGUIで起動するのに
107 "gvim-5"という名前を付けることができる。もちろんその名前で実行可能なファイルが
108 なければならない。
110 UNIXでは通常、Vimという名前の実行可能ファイルが一つあり、それにに対して違う名
111 前のリンクが用意される。使用しているシステムがリンクをサポートせず、実行ファイ
112 ルのコピーを幾つも作りたくないのならば、リンクの代わりにエイリアスを使うことも
113 できる。例: >
114         alias view   vim -R
115         alias gvim   vim -g
117                                                         *startup-options*
118 オプション引数はどんな順番で与えても良い。一文字のオプションは一つのダッシュ
119 (-)の後に組み合わせる。引数"--"の後にはオプション引数を置くことはできない。
121 VMSでは全てのオプション引数は小文字であるとみなされる。大文字を指定するにはス
122 ラッシュを前に置く。つまり"-R"でリカバリモード、"-/R"で読み込み専用となる。
124 --help                                                  *-h* *--help*
125 -h              使用法(ヘルプ)を表示して終了する。{Viにはない機能}
126                 そのテキストを保存するには|info-message|を参照。
128                                                         *--version*
129 --version       バージョン情報を表示して終了する。出力は|:version|コマンドと一
130                 緒。{Viにはない機能}
131                 そのテキストを保存するには|info-message|を参照。
133                                                         *--noplugin*
134 --noplugin      プラグインを読み込まない。'loadplugins'オプションをオフにす
135                 る。{Vi にはない}
136                 Note: |-u|引数でもプラグインを読み込まないようにできる:
137                         引数              vimrcファイル               プラグイン ~
138                         なし                      yes                 yes
139                         -u NONE                 no                  no
140                         -u NORC                 no                  yes
141                         --noplugin              yes                 no
143                                                         *--literal*
144 --literal       ファイル名を文字どおり解釈する。ワイルドカードを展開しない。
145                 Unixでは必要ない、Vimは常にファイル名を文字どおり解釈する(シェ
146                 ルがワイルドカードを展開する)。
147                 全てのファイル名に適用される。この引数の前に指定したものも同
148                 じ。
150                                                         *-+*
151 +[num]          最初に編集されるファイルの"num"行目にカーソルを置いて開く。
152                 "num"がなかった場合には、カーソルは最終行に置かれる。
154                                                         *-+/*
155 +/{pat}         最初に編集されるファイルの、"pat"を含む最初の行にカーソルを置
156                 いて起動する(指定可能な検索パターンについては|pattern|を参
157                 照)。
159 +{command}                                              *-+c* *-c*
160 -c {command}    最初のファイルが読み込まれた後(加えてそのファイルに適応される
161                 autocommandとmodelineが処理された後)に{command}が実行される。
162                 "command"はExコマンドとして解釈される。"command"にスペースを含
163                 んでいる場合には、ダブルクォートで挟まれている必要がある(これ
164                 は使われているシェルに依存する)。例: >
165                         vim  "+set si"  main.c
166                         vim "+find stdio.h"
167                         vim  -c "set ff=dos"  -c wq  mine.mak
169                 Note: Vimコマンドの引数として"+"か"-c"をあわせ、最大10個まで使
170                 うことができる。これらの引数は与えられた順番で実行される。"-S"
171                 引数は"-c"として同じように数える。
172                 {Vi は一つのコマンドしか許さない}
174 --cmd {command}                                         *--cmd*
175                 vimrcファイルを処理する前に{command}を実行する。それ以外は
176                 -c {command} と同じである。"-c"引数とは別に、10個まで使うこと
177                 ができる。
179                                                         *-S*
180 -S {file}       最初のファイルが読み込まれた後に{file}を実行する。これは次のも
181                 の簡単にしたものである: >
182                         -c "source {file}"
183 <               "-c"と混ぜて使うことができ、複数指定できる。"-c"と合わせて10個
184                 まで指定できる。
185                 {file}の先頭文字には"-"は使えない。
186                 {Vi にはない}
188 -S              "-S Session.vim"と同じ。最後の引数として使われたときや、その後
189                 に他のオプション引数が続いたときのみこのように解釈される。
191                                                         *-r*
192 -r              リカバリモード。ファイル名の引数なしで実行した場合には、存在す
193                 るスワップファイルのリストが表示される。ファイルを指定すると、
194                 クラッシュしたセッションを復活させるために、スワップファイルが
195                 読み込まれる。|crash-recovery|を参照。
197                                                         *-L*
198 -L              -rと同じ。{幾つかのバージョンのViだけにある: "List recoverable
199                 edit sessions"(復活可能な編集セッションのリスト)のListのL}
201                                                         *-R*
202 -R              読み込み専用モード。オプション'readonly'が、編集される全ての
203                 ファイルに設定される。これにより、まだバッファを編集することは
204                 できるが、偶然にファイルを上書きしてしまうようなことは防がれ
205                 る。もしも、読み込み専用モードにいることを忘れてバッファへ変更
206                 を行ったとしても、":w!"のようにExコマンドに「ビックリマーク」
207                 を付けることで上書きすることが可能。'readonly'オプションは
208                 ":set noro"としてオフに設定することが可能である(オプションを説
209                 明した章|options|を参照)。その後の編集は読み込み専用モードでは
210                 なくなる。実行ファイルを"view"として起動した場合は、この-R引数
211                 と同じ動作になる。オプション'updatecount'は10000に設定され、こ
212                 れはスワップファイルがそう頻繁には自動更新されなくなるというこ
213                 とである。
215                                                         *-m*
216 -m              変更を保存できなくする。オプション'write'がオフに設定され、
217                 ファイルを保存することができなくなる。オプション'write'をオン
218                 すれば、再び保存することが可能になる。
219                 {Vi にはない}
221                                                         *-M*
222 -M              変更できないようにする。オプション'modifiable'がオフに設定さ
223                 れ、変更を加えることができなくなる。さらに、オプション'write'
224                 がオフに設定され、ファイルを保存することができなくなる。
225                 'modifiable'と'write'をオンにすれば、変更を加えて保存できるよ
226                 うになる。
227                 {Vi にはない}
229                                                         *-Z* *restricted-mode*
230 -Z              制限モード。外部シェルを実行するあらゆるコマンドの使用を不許可
231                 にする。これにはサスペンドであるCTRL-Zや、":sh"、フィルタリン
232                 グ、system()関数、バッククォートの評価、その他も含まれる。
233                 {Vi にはない}
235                                                         *-g*
236 -g              VimをGUIモードで起動する。|gui|を参照。 {Vi にはない}
238                                                         *-v*
239 -v              ExをViモードで起動する。実行ファイルが"ex"や"gvim"である時にだ
240                 け、違いが現れる。gvimでは可能ならば"GUI"ではないモードで起動
241                 する。
243                                                         *-e*
244 -e              VimをExモードで起動する|Q|。実行ファイルの名前が"ex"以外の時に
245                 意味がある。
247                                                         *-E*
248 -E              Vimを改良版Exモードで起動する|gQ|。実行ファイルの名前が"exim"
249                 以外の時に意味がある。
250                 {Vi にはない}
252                                                         *-s-ex*
253 -s              サイレント(もしくはバッチ)モード。Vimが"ex"で起動されるか、こ
254                 のオプションよりも先に"-e"が付いていた場合にだけ働く。そうでな
255                 い場合には|-s|を参照。|-s|として使うときには引数をとる。
256                 端末の替わりにファイルからExコマンドを実行する場合に使用され
257                 る。ほとんどのプロンプトとメッセージは抑制される。警告とエラー
258                 のメッセージも抑制される。
259                 次のコマンドの出力は標準出力へ表示される:
260                         :print
261                         :list
262                         :number
263                         :set      オプション値を表示するため。
264                 'verbose'が0以外のときにはメッセージは抑制されずに標準エラー
265                 出力へ表示される(デバッグ用)。
266                 'term' と $TERM は考慮されない。
267                 Vimが停止しているようだったら"qa!<Enter>"と入力してみてほし
268                 い。Vimがユーザーの入力を待っているときでもプロンプトは表示さ
269                 れない。
270                 初期化処理はスキップされる(このオプションが引数"-u"と一緒に使
271                 われた場合は除く)。
272                 例: >
273                         vim -e -s < thefilter  thefile
275                                                         *-b*
276 -b              バイナリモード。ファイルを入出力する再に<NL>だけを行のセパレー
277                 タとして認識するようになる。オプション'expandtab'は無効化され
278                 る。オプション'textwidth'は0に設定される。'modeline'はオフに設
279                 定される。オプション'binary'がオンに設定される。これは
280                 vimrc/exrcのファイルが読み込まれた直後、引数で与えられたファイ
281                 ルが読み込まれるよりも前に行われる。|edit-binary|も参照。
282                 {Vi にはない}
284                                                         *-l*
285 -l              Lispモード。オプション'lisp'と'showmatch'をオンに設定する。
287                                                         *-A*
288 -A              アラビア語モード。オプション'arabic'をオンに設定する。
289                 |+arabic|(これは|+rightleft|も含んでいる)が有効なときだけ使用
290                 できる。そうでないときにはVimはエラーメッセージを出力して終了
291                 する。 {Vi にはない}
293                                                         *-F*
294 -F              Farsi(ペルシア語)モード。'fkmap'と'rightleft'オプションをオン
295                 に設定する。(|+rightleft|と|+farsi|有効にしてコンパイルした時
296                 にだけ有効。そうでない場合Vimはエラーメッセージを表示して終了
297                 する)。
298                 {Vi にはない}
300                                                         *-H*
301 -H              Hebrew(ヘブライ語)モード。オプション'hkmap'と'rightleft'をオン
302                 に設定する。(|+rightleft|を有効にしてコンパイルした時にだけ使
303                 用可。そうでない場合Vimはエラーメッセージを表示して終了する)。
304                 {Vi にはない}
306                                                         *-V* *verbose*
307 -V[N]           詳細表示する。オプション'verbose'を[N]に設定する(Nを省略した場
308                 合は10が設定される)。":source"が実行される度、viminfoの読み書
309                 きを行う度に情報が表示される。Vimの起動時と終了時の動作を調べ
310                 るときに便利である。{Vi にはない}
312 -V[N]{filename}
313                 -V と同様で、さらに 'verbosefile' を {filename} に設定する。そ
314                 の結果、メッセージは表示されずにファイル {filename} に書き出さ
315                 れる。{filename} は数字で始まってはならない。
317                                                         *-D*
318 -D              デバッグする。スクリプトの最初のコマンドを実行するところからデ
319                 バッグを開始する。|debug-mode|
320                 {|+eval|が有効な場合のみ利用可能}
321                 {Vi にはない}
323                                                         *-C*
324 -C              コンパチブルモード。オプション'compatible'をオンに設定する。
325                 ファイル.vimrcファイルが存在する場合にもViとの互換性を得ること
326                 ができる。あとで":set nocompatible"として設定を変更することが
327                 できる。|compatible-default|も参照。{Vi にはない}
329                                                         *-N*
330 -N              非コンパチブルモード。オプション'compatible'をオフに設定する。
331                 ファイル.vimrcがないときに、'nocompatible'(Vimの拡張を有効)に
332                 することができる。|compatible-default|も参照。{Vi にはない}
334                                                         *-y* *easy*
335 -y              簡易モード。|evim|や|eview|と同じ。'insertmode'をオンに設定し
336                 て起動し、モードレスエディタのように振舞う。このスイッチを指定
337                 すると、$VIMRUNTIME/evim.vimが自動的に読み込まれ、一般的なエデ
338                 ィタと同じ操作ができるようなマッピングが設定される。
339                 |evim-keys|を参照。利用可能ならGUIが使用される。
340                 {Vi にはない}
342                                                         *-n*
343 -n              スワップファイルを使用しない。クラッシュしたときに編集していた
344                 ファイルを復旧することはできなくなる。フロッピーディスクのよう
345                 な非常に低速なメディアのファイルを読んだり編集したいときに有用
346                 である。":set updatecount=0"と設定するのと同じである。オプショ
347                 ン'updatecount'に0より大きい値を設定することで、スワップファイ
348                 ルの使用を有効にすることができる。例、":set uc=100"。
349                 ファイルvimrcの実行解釈の直後で、GUIが初期化される前に
350                 'updatecount'が0に設定される。よってファイルvimrcの中で
351                 'updatecount'を設定しても上書きされてしまうが、gvimrcでの設定
352                 は上書きされない。|startup|を参照。ディスクへのアクセスを減ら
353                 したいのならば(ノートPCを使用している場合など)、"-n"を使用する
354                 替わりに、'updatetime'を設定し、'updatecount'に非常に大きい値
355                 を設定して、編集中のファイルを保存する時に":preserve"を利用す
356                 ると良い。この方法だとクラッシュからの復旧の可能性を保てる。
357                 {Vi にはない}
359                                                         *-o*
360 -o[N]           N個のウィンドウを水平分割して開く。[N]が与えられない場合には、
361                 引数で指定された全てのファイルに対して1個のウィンドウが開かれ
362                 る。画面に十分な広さがない場合には、始めのほうの数個のファイル
363                 だけがウィンドウを伴って表示される。逆にファイルの数よりもウィ
364                 ンドウの数が多く指定された場合、多い分のウィンドウは空ファイル
365                 の編集用として開かれる。
366                 {Vi にはない}
368                                                         *-O*
369 -O[N]           N個のウィンドウを垂直分割して開く。それ以外は|-o|と同じ。
370                 -oと-Oが両方指定されたときは最後に指定された方を使用する。
371                 {Vi にはない}
373                                                         *-p*
374 -p[N]           N 個のタブページを開く。[N] が省略されると、引数として与えられ
375                 た各ファイルに対し1つずつタブページを開く。最大値は
376                 'tabpagemax' ページ(既定値は 10)である。引数よりも多くのタブペー
377                 ジが作られる場合は、最後の数個のタブページは空ファイルを開く。
378                 |tabpage| も参照。
379                 {Vi にはない}
381                                                         *-T*
382 -T {terminal}   端末の種類を"terminal"に設定する。これはVimがユーザの端末へ送
383                 るコードに影響を与える。Vimはユーザが使用している端末の種類を
384                 自分で判断することができるので、通常これは必要がない
385                 (|terminal-info|を参照)。{Vi にはない機能}
387                                                         *-d*
388 -d              diffモードで起動する。|vimdiff|と同じ。
389                 {Vi にはない} {|+diff|が有効な場合のみ利用可能}
391 -d {device}     Amiga専用機能。|+diff|が無効な場合のみ利用可能。|-dev|と同じよ
392                 うに機能する。
393                                                         *-dev*
394 -d {device}     Amiga専用機能: {device}が編集用に開かれる。
395                 普通、ウィンドウの位置とサイズを設定するために"-d
396                 con:x/y/width/height"の形式で指定する。例、"-d
397                 con:30/10/600/150"。しかしその他のAUX:のようなデバイスの編集を
398                 開始することにも使用できる。{Vi にはない}
399                                                         *-f*
400 -f              Amiga専用機能: Vimを新しいウィンドウで起動しない。編集作業が終
401                 わるのを待つプログラム(メールソフトやニュースリーダ)によって
402                 Vimが起動される時に、このオプションは使用される。
403                 |amiga-window|を参照。
405                 一般的なGUI: Vimを起動したプログラム(プロセス)から独立しない。
406                 'f'は"foreground"を意味する。省略すると、GUI版のVimは新しいプ
407                 ロセスへforkして、現在のプロセスは終了してしまう。gvimの編集
408                 セッションが終わるのを待つプログラム(メールソフトやニュース
409                 リーダなど)には、"-f"を使うべきだろう。gvimがforkしないように
410                 するには、自分の.  gvimrcの中で'guioptions'に'f'を加えれば良
411                 い。
412                 Note: "-gf"でGUIをフォアグラウンドで実行開始できるが、"-fg"だ
413                 と前景色の設定になってしまう。|gui-fork|参照。
414                 {Vi にはない}
416                                                         *--nofork*
417 --nofork        GUI: forkしない。|-f|と同じ。
419                                                         *-u* *E282*
420 -u {vimrc}      初期化のためにファイル{vimrc}が読込まれる。その他の初期化はス
421                 キップされる。|initialization|を参照。これにより特殊なマッピン
422                 グや設定をした、特殊なモードでVimを起動することができる。これ
423                 を簡単に使用するにはシェルのエイリアスが使えるだろう。例: >
424                         alias vimc vim -u ~/.c_vimrc !*
425 <               autocommandを使うことも考慮すべきである。|autocommand|を参照。
426                 {vimrc}に"NONE"(全て大文字)が指定された時には、設定ファイルや
427                 環境変数による初期化、.gvimrcによるGUIの初期化も含め、全て省略
428                 される。プラグインも読み込まれない。
429                 {vimrc}が"NORC"(全部大文字)のときは"NONE"と同じように処理され
430                 るが、プラグインは読み込まれる。
431                 "-u"引数を使用すると副作用としてオプション'compatible'がオンに
432                 設定される。これは予期せぬ動作を引き起こすかもしれない。
433                 |'compatible'|を参照。
434                 {Vi にはない}
436                                                         *-U* *E230*
437 -U {gvimrc}     GUIがスタートする時にファイル{gvimrc}が読込まれる。その他のGUI
438                 初期化はスキップされる。{gvimrc}にNONEが指定された場合、初期化
439                 ファイルは何も読込まれない。
440                 例外: システムのメニューファイルは常に読込まれる。
441                 {Vi にはない}
443                                                         *-i*
444 -i {viminfo}    デフォルトのviminfoの代わりにファイル{viminfo}を使用する。
445                 "NONE"(全て大文字)が指定された場合には、'viminfo'が指定された
446                 り、":rv"や":wv"が使われても、viminfoは読み書きともに使用され
447                 ない。|viminfo-file|参照。
448                 {Vi にはない}
450                                                         *-x*
451 -x              ファイルの読み書き時に暗号化を施す。暗号の鍵としてオプション
452                 'key'に設定された値を使用する。全ての書き込みは、テキストに対
453                 して鍵を使って暗号化を行ってから なされる。ファイルを読込む時
454                 には、Vimは暗号化ファイルかチェックし、自動的に鍵を聞いてくる
455                 ので、引数'-x'は必要でない。|encryption|
457                                                         *-X*
458 -X              Xサーバと通信しない。そうして、カレントウィンドウのタイトルを
459                 取得したり、Xのクリップボードを使ったコピー/ペーストを使用した
460                 りしない。端末エミュレータでVimを使用するときにXサーバとの通信
461                 速度が遅い場合にそれを回避できる。
462                 UnixかVMSで|+X11|が有効な場合のみ意味がある。
463                 特定の端末を使用するときだけ通信を無効にするには、オプション
464                 'clipboard'を参照。
465                 X11 Session Management Protocol (XSMP) の処理が組み込まれてい
466                 る場合、その通信にも大きな延滞が生じるため、無効にする。
467                 (例えばクライアントとサーバが通信するため)あとからXサーバとの
468                 通信をつなげるには|serverlist()|関数を呼び出す。ただしXSMPの処
469                 理は有効にならない。
470                 {Vi にはない}
472                                                         *-s*
473 -s {scriptin}   スクリプトファイル{scriptin}が読込まれる。ファイルの中のキャラ
474                 クタは、全てユーザがタイプしたものとして解釈される。エディタが
475                 終了する前にファイルの終端に達した場合、以降のキャラクタはキー
476                 ボードから読込まれる。Exモード動作時には働かない、|-s-ex|を参
477                 照。|complex-repeat|も参照。
478                 {Vi にはない}
480                                                         *-w_nr*
481 -w {number}
482 -w{number}      オプション 'window' を {number} に設定する。
484                                                         *-w*
485 -w {scriptout}  Vimを終了するまで、ユーザが入力した全部の文字が記録され、ファ
486                 イル{scriptout}に書き出される。これは"vim -s"や":source!"で読
487                 込まれるスクリプトファイルを作成するのに役立つ。既にファイル
488                 "scriptout"が存在する場合には、そのファイルに追加保存する。
489                 |complex-repeat|も参照。
490                 {scriptout} は数字で始まってはならない。
491                 {Vi にはない}
493                                                         *-W*
494 -W {scriptout}  -wに似ているが、アペンド(追加)せずに、既にあるファイルを上書き
495                 する。
496                 {Vi にはない}
498 --remote [+{cmd}] {file} ...
499                 サーバとして機能している他のVimで{file}を開く。
500                 この引数の前にファイルを指定することはできない。
501                 |--remote|を参照。 {Vi にはない}
503 --remote-silent [+{cmd}] {file} ...
504                 --remoteと同じ。ただしサーバがなくてもメッセージを出さない。
505                 |--remote-silent|を参照。 {Vi にはない}
507 --remote-wait [+{cmd}] {file} ...
508                 --remoteと同じ。ただしサーバが終了するまで待機する。
509                 |--remote-wait|を参照。 {Vi にはない}
511 --remote-wait-silent [+{cmd}] {file} ...
512                 --remote-waitと同じ。ただしサーバがなくてもメッセージを出さな
513                 い。|--remote-wait-silent|を参照。 {Vi にはない}
515 --servername {name}
516                 Vimサーバの名前を指定する。これは通信先のサーバ名、あるいは起
517                 動するVimが使用する名前である。
518                 |--servername|を参照。 {Vi にはない}
520 --remote-send {keys}
521                 {keys}をVimサーバに送り、終了する。
522                 |--remote-send|を参照。 {Vi にはない}
524 --remote-expr {expr}
525                 Vimサーバで{expr}を評価し、その結果を標準出力に出力する。
526                 |--remote-expr|を参照。 {Vi にはない}
528 --serverlist
529                 稼働しているVimサーバの一覧を出力する。
530                 |--serverlist|を参照。 {Vi にはない}
532 --socketid {id}                                         *--socketid*
533                 GTK+ GUIのVimのみ。GtkPlugを使用し、別アプリケーションのウィン
534                 ドウで起動するようにする。詳細は|gui-gtk-socketid|を参照。
535                 {Vi にはない}
537 --echo-wid                                              *--echo-wid*
538                 GTK+ GUIのVimのみ。ウィンドウのIDを標準出力に出力する。この値
539                 はgvimをkpartウィジェットに埋め込むのに使用できる。出力の書式
540                 は: >
541                         WID: 12345\n
542 <               {Vi にはない}
544 --role {role}                                           *--role*
545                 GTK+ 2 GUIのみ。メインウィンドウの役割(role)を{role}に設定する
546                 。ウィンドウの役割はウィンドウマネージャがウィンドウを識別して
547                 、ウィンドウの位置等を復元するのに使われる。この引数はログイン
548                 時にセッションを復元するときに自動的に使用される。
549                 |gui-gnome-session|を参照。
550                 {Vi にはない}
552 -P {parent-title}                               *-P* *MDI* *E671* *672*
553                 Win32のみ。親になるアプリケーションのタイトルを指定する。可能
554                 であればVimはそのMDIアプリケーションのウィンドウ内で起動する。
555                 {parent-title}が親アプリケーションのウィンドウのタイトルに使わ
556                 れていて、明確に区別できる必要がある。
557                 Note: まだ簡単に実装されているだけである。全てのアプリケーショ
558                 ンで動くわけではない。メニューは機能しない。
560 -nb                                                     *-nb*
561 -nb={fname}
562 -nb:{hostname}:{addr}:{password}
563                 Netbeansと接続し、エディタサーバになる。2番目の型は接続情報を
564                 格納したファイルを指定する。3番目の型はNetbeansに接続するため
565                 のホスト名、アドレス、パスワードを指定する。|netbeans-run|
567 複数のファイルに書かれた名前を変更するスクリプトファイルの例:
568         置換コマンドと:wqコマンドを含んだファイル"subs.vi"を作る: >
569                 :%s/Jones/Smith/g
570                 :%s/Allen/Peter/g
571                 :wq
573         変更したいファイルに対してVimを実行する: >
575                 foreach i ( *.let ) vim -s subs.vi $i
577 実行ファイルが"view"だったならば、Vimは読込み専用モードで起動する。"view"から
578 "vim"へハードリンクかシンボリックリンクを作成すると便利だろう。"vim -R"とする
579 ことでも読込み専用モードで起動できる。
581 実行ファイルの名前が"ex"ならば、VimはExモードで起動する。これは":"コマンドだけ
582 しか使えないことを意味している。しかし引数"-v"が与えられれば、Vimは常にノーマ
583 ルモードで起動する。
585 unix互換のシステムでX11 GUIサポートが有効ならさらに多くの引数が利用可能であ
586 る。|gui-resources|を参照。
588 ==============================================================================
589 2. Amiga版のVim                                           *starting-amiga*
591 VimをWorkbenchから起動する                             *workbench*
592 --------------------------
594 Workbench上でアイコンを2度クリックすればVimを起動することができる。そうすると
595 空のバッファで起動するだろう。
597 "Project"アイコンを使用することで、1つ以上のファイルを開くことができる。アイコ
598 ンの"Default Tool"にはVimの実行ファイルの完全なパスを設定し、".info"ファイルの
599 名前には、編集するテキストファイルの名前を設定する。このアイコンを2度クリック
600 すると、Vimが起動してそのファイルを開く(そのファイルがあれば)。シフトキーを押
601 しながらアイコンをクリックし、最後のファイルを2度クリックすることで、複数の
602 ファイルを開くことができる。これら全てのアイコンの"Default Tool"は同じでなけれ
603 ばならない。
605 Workbenchからではファイル名以外の引数は、Vimへ与えることができない。
607 Vimウィンドウ                                                *amiga-window*
608 ----------
610 Vimは起動されたCLIウィンドウの中で動作する。Vimが"run"や"runback"コマンド、
611 あるいやWorkbenchから起動された場合には、自分自身でウィンドウを開く。
613 技術的詳細:
614         新しいウィンドウを開くためにちょっとしたトリックを使う。Vimは普通のCLI
615         ウィンドウの中で起動されていないことを検出するとすぐに、"t:"にあるスク
616         リプトファイルを作成する。このスクリプトファイルにはVimを起動したのと
617         同じコマンドに加えて"endcli"コマンドが含まれている。このスクリプトファ
618         イルは"newcli"コマンドと一緒に実行される (これが行われる時には"c:run"
619         と"c:newcli"コマンドが必要)。スクリプトファイルはリブートするか、手動
620         で消すまで存在しつづける。この方法は":sh"と":!"コマンドが正しく機能す
621         る必要がある。しかしVimが-fオプション(フォアグラウンドモード)で起動さ
622         れた時には、この方法は使われない。Vimを-fオプションで起動した時には、
623         その終了を待つからである。スクリプトのトリックを使うと、Vimを呼び出し
624         たプログラムはその終了を知ることができない。オプション-fはメールプログ
625         ラムなど編集のセッションが終わったことを 検出したい場合に、Vimを起動す
626         る方法として使用される。だからオプション-fが指定された時には、":sh"と
627         ":!"コマンドは使用することができない。
629 Vimは自動的にウィンドウのサイズを認識して対応する。Amiga DOS 1.3の元では、表示
630 の更新速度を上げるために、fastfontsのプログラム"FF"の支援を受けて動作する。
632 ==============================================================================
633 3. eVimについて                                                     *evim-keys*
635 EVimはVimをモードレスエディタとして実行する。これはViらしくない発想ではあるが
636 、Vimの操作方法を覚えられるほどには使用しない人の助けになる。ノーマルモードの
637 コマンドを覚えることで編集作業がより簡単になるということを利用者が感付いてくれ
638 れば幸いである。
640 Evimでは以下のオプションが標準設定から変更される:
642         :set nocompatible       ViにはないVim独自の機能を使う
643         :set insertmode         常時挿入モードを使用する
644         :set hidden             非表示になったバッファを開放しない
645         :set backup             バックアップファイルを消さない(VMS以外)
646         :set backspace=2        どこでもバックスペースを使用できるようにする
647         :set autoindent         新しい行を入力するときに自動的にインデントする
648         :set history=50         Exコマンドの使用履歴を50回前まで記録する
649         :set ruler              カーソルの位置を表示する
650         :set incsearch          検索時、入力途中にマッチ箇所を表示する
651         :set mouse=a            全てのモードでマウスを使う
652         :set hlsearch           検索した文字を強調表示する
653         :set whichwrap+=<,>,[,]  <Left>と<Right>を使った左右の移動で行を跨ぐ
654         :set guioptions-=a      非Unixのみ。選択時に自動的にコピーしない
656 キーマッピング:
657         <Down>          実際の行ではなく表示された行の単位で移動する
658         <Up>            同上
659         Q               "gq"コマンドで文章整形する。
660         <BS>            ビジュアルモードで選択範囲を削除する
661         CTRL-X          ビジュアルモードで選択範囲を切り取ってクリップボードに
662                         コピーする
663         <S-Del>         同上
664         CTRL-C          ビジュアルモードで選択範囲をクリップボードにコピーする
665         <C-Insert>      同上
666         CTRL-V          クリップボードから貼り付ける(どのモードでも)
667         <S-Insert>      同上
668         CTRL-Q          本来のCTRL-Vの機能
669         CTRL-Z          元に戻す(undo)
670         CTRL-Y          やり直し(redo)
671         <M-Space>       システムメニューを表示
672         CTRL-A          全てを選択する
673         <C-Tab>         次のウィンドウへ。CTRL-W w と同じ
674         <C-F4>          ウィンドウを閉じる。CTRL-W c と同じ
676 追記:
677 - ":behave mswin"が使用される|:behave|
678 - 構文強調表示が有効になる
679 - ファイルタイプ別の機能が有効になる。ファイルタイプ用のプラグインやインデント
680   が使用される。
681 - テキストファイルでは'textwidth'が78に設定される
683 ヒント: ノーマルモードのコマンドを連続して使用するにはCTRL-Lを使用する。
684 |i_CTRL-L|
686 ==============================================================================
687 4. 初期化                                  *initialization* *startup*
689 このセクションはVimの非GUIバージョンについて書く。GUIをスタートさせた時の追加
690 の初期化は|gui-fork|を参照。
692 スタート時に、Vimは環境変数とファイルを調べ、然るべく値を設定する。Vimはこの順
693 序で取り掛かる。
695 1. オプション'shell'と'term'を設定する             *SHELL* *COMSPEC* *TERM*
696         環境変数SHELLが存在するならば、オプション'shell'を設定するのに使われ
697         る。MS-DOSとWin32ではSHELLが設定されていない場合COMSPECの値が使用され
698         る。
699         環境変数TERMが存在するならば、オプション'term'を設定するのに使われる。
700         しかし、後で GUI を開始するときに 'term' は変更される(下のステップ 8
701         を参照。
703 2. 引数を処理する
704         Vimを起動するときに指定したオプション引数やファイル名を調べる。指定さ
705         れたファイルのバッファを作成する(まだ読み込まない)。
706         引数 |-V| を使うと、初期化処理のデバッグ用にこれ以降で起こることを表示
707         したりログに書き出したりできる。
709 3. 環境変数とファイルのExコマンドを実行する
710         環境変数の値は一つのExコマンドラインとして読まれるので、複数のコマンド
711         を実行したい時には'|'か"<NL>"で区切る必要がある。
712                                                                 *vimrc* *exrc*
713         "vimrc"ファイルは初期化コマンドを含んだファイルである。vimrcファイルは
714         一行ずつExコマンドとして実行される。"exrc"とほぼ等価である。それらは同
715         じタイプのファイルであるが、"exrc"が常にViによって使われるのに大して、
716         "vimrc"はVim特有のものである。|vimrc-intro|も参照。
718         個人の初期化ファイルの推奨される配置場所:
719                 Unix                $HOME/.vimrc
720                 OS/2                $HOME/.vimrc or $VIM/.vimrc (or _vimrc)
721                 MS-DOS and Win32    $HOME/_vimrc or $VIM/_vimrc
722                 Amiga               s:.vimrc or $VIM/.vimrc
724         Vimが"-u filename"で起動された場合、デフォルトのvimrcの代わりに
725         "filename"が使われる。続く初期化処理の4.までがスキップされる。
726         "vim -u NORC"によりファイルを読み込むことなくこれらの初期化を省略する
727         ことができる。"vim -u NONE"を使用するとさらにプラグインも読み込まな
728         い。|-u|
730         起動引数"-s"によりVimがExモードで起動されたならば、続く4.までの初期化
731         処理がスキップされる。オプション"-u"だけが処理される。
732                                                         *evim.vim*
733      a. Vimを|evim|や|eview|として、あるいは|-y|引数を指定して起動すると
734         $VIMRUNTIME/evim.vimが実行される。
735                                                         *system-vimrc*
736      b. Unix、MS-DOS、MS-Windows、OS/2、VMS、Macintosh、RISC-OSそしてAmigaで
737         は、システムのvimrcファイルが初期化のために読み込まれる。このファイル
738         のパスは":version"コマンドによって確認できる。普通は"$VIM/vimrc"であ
739         る。Note: このファイルは'compatible'モードであっても読み込まれる。
740         'compatible'の自動リセットはこれが終わった後に行われることになってい
741         る。必要ならば":set nocp"コマンドを追加する。
742         Macintosh では $VIMRUNTIME/macmap.vim が読み込まれる。
744                           *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc*
745      c. 初期化のために4つの場所が検索される。最初に見つかったものが使用され、
746         残りは無視される。ここまでで環境変数 $MYVIMRC が設定されていないなら、
747         $MYVIMRCに最初にみつかったファイルが設定される。
748         -  環境変数VIMINIT(|compatible-default|も参照) (*)
749            その内容はExコマンドとして解釈される。
750         -  ユーザvimrcファイル:
751                     "$HOME/.vimrc"      (for Unix and OS/2) (*)
752                     "s:.vimrc"          (for Amiga) (*)
753                     "home:.vimrc"       (for Amiga) (*)
754                     "$VIM/.vimrc"       (for OS/2 and Amiga) (*)
755                     "$HOME/_vimrc"      (for MS-DOS and Win32) (*)
756                     "$VIM/_vimrc"       (for MS-DOS and Win32) (*)
757                 Note: Unix, OS/2そしてAmigaでは、".vimrc"がなかった場合には、
758                 MS-DOS互換のファイルシステムを使用することを考え、"_vimrc"も試
759                 みられる。MS-DOSとWin32では"_vimrc"を探したあとで、ロングファ
760                 イルネームの仕組みを使用して".vimrc"が探される。
761                 Note: MS-DOSとWin32では"$HOME"がまず検査される。"_vimrc"と
762                 ".vimrc"のどちらもない場合には、"$VIM"が調べられる。$VIMが設定
763                 されていない場合については|$VIM|参照。
764         -  環境変数EXINIT。
765            その内容はExコマンドとして解釈される。
766         -  ユーザのexrcファイル。vimrcと同じだが、vimrcがexrcによって置き換え
767            られている。しかし ".exrc" と "_exrc" のどちらか1つだけが使われる。
768            これはシステムによる。(*)の注釈は適用されない。
770      d. 'exrc'オプションがオン(初期状態ではオフ)の場合、現在のディレクトリで4
771         つのファイルが検索される。最初に見つかったものだけが使用され、残りは無
772         視される。
773         -  The file ".vimrc" (for Unix, Amiga and OS/2) (*)
774                     "_vimrc" (for MS-DOS and Win32) (*)
775         -  The file "_vimrc" (for Unix, Amiga and OS/2) (*)
776                     ".vimrc" (for MS-DOS and Win32) (*)
777         -  The file ".exrc"  (for Unix, Amiga and OS/2)
778                     "_exrc"  (for MS-DOS and Win32)
780      (*) このファイルを使用するか環境変数を使用した場合、自動的に'compatible'
781          オプションがオフに設定される。|compatible-default|を参照。
783 4. プラグインスクリプトを読み込む                              *load-plugins*
784         次のコマンドと同じことを実行する: >
785                 :runtime! plugin/**/*.vim
786 <       オプション'runtimepath'に指定された各ディレクトリのサブディレクトリ
787         "plugin"にある拡張子が".vim"となっているファイルを実行する(各ディレク
788         トリごとに名前順で実行される)。サブディレクトリに対しても再帰的に検索
789         される。
790         次の場合にはプラグインを読み込まない:
791         - vimrcファイルでオプション'loadplugins'がオフに設定された。
792         - 起動時の引数に|--noplugin|が指定された。
793         - 起動時の引数に"-u NONE"が指定された。
794         - |+eval|の機能を無効にしてVimをコンパイルした。
795         Note: 引数に"-c set noloadplugins"と指定しても意味がない。このコマンド
796         はこの時点ではまだ実行されない。"--cmd 'set noloadplugins'" とすればよ
797         い。|--cmd|
799 5. 'shellpipe'と'shellredir'を設定する
800         それ以前に設定されていなければ、'shell'オプションに従って'shellpipe'と
801         'shellredir'オプションが設定される。つまり自分で設定しなくても、Vimが
802         適切な'shellpipe'と'shellredir'の値を設定してくれる。
804 6. "-n"コマンド引数が使用されていたら、'updatecount'を0に設定する
806 7. バイナリオプションを設定する
807         Vimの起動時に"-b"フラグが与えられた場合、この時点でバイナリ編集用のフ
808         ラグが設定される。|-b|参照。
810 8. GUIの初期化を行う
811         "gvim"として起動された場合、GUIの初期化が行われる。|gui-init|参照。
813 9. viminfoファイルを読み込む
814         'viminfo'オプションが空でなければ、viminfoファイルが読み込まれる。
815         |viminfo-file|参照。
817 10. quickfixファイルを読み込む
818         Vimに"-q"フラグが与えられた場合、quickfixファイルが読み込まれる。これ
819         に失敗するとVimは終了する。
821 11. 全てのウィンドウを開く
822         |-o|フラグが与えられた場合、ウィンドウが開く(しかしまだ表示されない)。
823         |-p|フラグが与えられた場合、タブページが作られる(しかしまだ表示されな
824         い)。
825         スクリーンが切り替えられると、描画が始まる。
826         "-q"フラグがVimに与えられた場合、最初のエラーにジャンプする。全ての
827         バッファがロードされる。
829 12. スタートアップコマンドが実行される
830         "-t"フラグがVimに与えられた場合、タグにジャンプする。
831         |-c|と|+cmd|引数で与えられたコマンドが実行される。
832         'insertmode'オプションがセットされていると、インサートモード入る。
833         |VimEnter|のautocommandが実行される。
835 初期化のヒント:
837 スタンダードセットアップ:
838 全ての編集セッションに有効な、デフォルト設定とキーマッピングを設定するvimrc
839 ファイルを作成する。それを既に3bで述べた位置に置く:
840         ~/.vimrc        (Unix and OS/2)
841         s:.vimrc        (Amiga)
842         $VIM\_vimrc     (MS-DOS and Win32)
843 Note vimrcファイルを作るとデフォルトで'compatible'オプションがオフに設定され
844 る。|compatible-default|参照。
846 ローカルセットアップ:
847 特定のディレクトリだけにおいて編集時に必要になるコマンドを vimrcファイルに書
848 き、そのディレクトリに".vimrc" (MS-DOSとWin32は"_vimrc")という名前で置く。
849 NOTE: Vimに、これらのファイルを見るように指定するには、'exrc'オプションをオン
850 にする必要がある。|trojan-horse|(トロイの木馬)も参照。
852 システムセットアップ:
853 これは複数人で使うUNIXシステムを管理し、全員のデフォルト設定を行いたい時に適用
854 される。デフォルト設定とキーマッピングを行うコマンドをvimrcファイルに記述し、
855 ":version"コマンドで表示される場所に置く。
857 Vimの現在状態をファイルに保存する:
858 オプションの値を変えたときや、キーマッピングを作成した時には、それらを後で再利
859 用するためにvimrcファイルに保存したいだろう。現在の設定状態をファイルに保存す
860 るためには|save-settings|を参照。
862 Viユーザの設定の問題の回避:
863 Viは環境変数EXINITとファイル"~/.exrc"を初期化に使用する。もし(Vimの設定が)Viに
864 干渉して欲しくないならば、それらを使う替わりにVIMINITとvimrcを使用する。
866 Amigaの環境変数:
867 Amigaには2種類の環境変数が存在する。1つはDOS 1.3(かそれ以上)のsetenvコマンド
868 で、これはVimによって認識される。AmigaDos 1.3のマニュアルを参照。古いManxのSet
869 コマンド(バージョン5.0以前)の環境変数は、認識されない。
871 MS-DOSの行区切り文字:
872 MS-DOS風(MS-DOS自信、Win32、そしてOS/2)では、全てのvimrcファイルは行区切文字と
873 して<CR> <NL>を使用していると仮定する。<NL>だけを行区切文字として持つファイル
874 や、":map xx yy^M"のような設定のファイルを使う場合、問題を引き起こす。末尾の^M
875 は無視されてしまうだろう。
877                                                      *compatible-default*
878 Vimが起動すると、オプション'compatible'がオンに設定される。これは初期化時に使
879 用される。ユーザのvimrcファイルが見つかるか、現在のディレクトリにvimrcが見つか
880 るか、もしくは環境変数"VIMINIT"が設定されている場合にはすぐに、'nocompatible'
881 が設定される。これには副作用があって、設定が変更されてしまうオプションがある
882 ('compatible'参照)。しかしその時点でユーザが値を設定していないオプションだけが
883 変更される。これはVimの起動時に'compatible'が設定された場合と同様である。
884 Note: これはシステムのvimrcファイルが存在しても起こらない。gvimrcに対しても同
885 様である。最初に見つかった vimrc、gvimrc が $MYVIMRC、$MYGVIMRC に設定される。
887 'compatible'を.vimrcで設定すると副作用が発生する。マッピングは見つかった時点で
888 解釈されるので、"<CR>"のようなものを使う時に違いが生じる。もしもマッピングが
889 'compatible'の値に依存している場合、そのマッピングを定義する前に'compatible'を
890 設定する。
892 以上の振る舞いは次の方法で無効にすることができる:
893 - コマンドライン引数に"-N"を与えた場合、vimrcファイルが存在しなくても
894   'nocompatible'が使用される。
895 - コマンドライン引数に"-C"が与えられた場合、vimrcが存在しても'compatible'が使
896   用される。
897 - 引数"-u {vimrc}"が使用された場合、'compatible'が使われる。
898 - 実行ファイルの名前が"ex"で終わっていた場合、"-C"引数が与えられたのと同様に働
899   く: vimrcファイルが存在しても'compatible'が使用される。これは"ex"としてVimが
900   起動された時にはVimは"ex"のように振舞うようにするためである。
902 トロイの木馬を回避する:                                    *trojan-horse*
903 現在のディレクトリにある"vimrc"や"exrc"を読み込むときに、'secure'オプションを
904 設定することで、安全性のために幾つかのコマンドを無効にすることができる。タグ
905 ファイル内のコマンドを実行する際にも常にこれが行われる。そうでないと他人が作成
906 した悪意を持ったコマンドを、偶然実行してしまう可能性がある。使用不可になるコマ
907 ンドは、シェルを起動するものと、ファイルに書き込むものと、そして":autocmd"であ
908 る。":map"コマンドは表示され、どのようなマッピングがなされたか確認することがで
909 きる。
910         ローカルなvimrcファイル内で全てのコマンドを実行したい場合には、EXINIT
911 かVIMINIT環境変数か、グローバルな"exrc"もしくは"vimrc"ファイルで'secure'オプ
912 ションをオフに設定する。現在のディレクトリにある"vimrc"と"exrc"からは、理由は
913 明らだが、これは設定できない。
914         UNIXシステムでは、vimrcファイルの所有権がユーザにないときだけ'secure'
915 が適用される。警告: vimrcかexrcを含むアーカイブを展開したときには、そのファイ
916 ルはあなた自身のものになる。そこには安全性保護などない。Vimを起動する前に現在
917 のディレクトリにvimrcファイルがないかチェックするか、'exrc'オプションをオフに
918 設定したほうが良い。幾つかのUNIXシステムでは一般ユーザがファイルに"chown"を行
919 うことを許しているものがある。これは別のユーザが悪意に満ちたvimrcを作成し、所
920 有者を貴方にすることを可能にしている。注意されたし!
921         タグサーチコマンドを使う時には、実行されるサーチコマンド(タグファイル
922 の各行の最後の部分)は常に安全なモードで行われる。これは現在のディレクトリにあ
923 るvimrc/exrcからコマンドが実行されるのと、ちょうど同じように働く。
925                                                         *slow-start*
926 Vimの起動に時間がかかる場合、幾つかの理由が考えられる:
927 - UnixでGUIやX11を有効にしている場合(":version"の出力で"+GUI"と"+X11"をチェッ
928   ク)、共有ライブラリをロードしX11サーバに接続する必要がある。GUIとX11を無効に
929   してコンパイルしたバージョンを試して欲しい。これにより実行ファイルが小さくも
930   なるだろう。
931   CUI端末でVimを起動するときの引数に|-X|を指定するとXサーバと接続しないように
932   できる。
933 - "viminfo"を使用している場合、viminfoファイルを読み込むのに少し時間がかか
934   る。viminfoが原因ならば一時的にviminfoを無効にすることによって確認することが
935   できる(Vimを引数"-i NONE"で起動する。|-i|)。":set viminfo='20,<50,s10"と設定
936   して、レジスタに保存される行数を減らしてみるのも良い。
937                                                         |viminfo-file|.
939                                                         *:intro*
940 ファイル名を与えずにVimを起動した場合、(Vimのことを知らない人に向けて)紹介メッ
941 セージが表示される。そのメッセージはなんらかの操作によって画面が再描画されると
942 すぐに消される。もう一度メッセージをみるには、":intro"コマンドを使用する(表示
943 するスペースがなければ一部だけが表示される)。起動時に紹介メッセージを表示しな
944 いようにするには'shortmess'に'I'フラグを追加する。
946                                                         *info-message*
947 起動引数に|--help|や|--version|を指定するとVimはメッセージを出力して終了する。
948 通常はそのメッセージは標準出力に送られるので、リダイレクトしてファイルに書き込
949 むことができる: >
951         vim --help >file
953 Vimでその出力を取り込むには: >
955         :read !vim --help
957 gvimは標準出力と標準エラー出力が端末に繋がってないときに、自身がデスクトップか
958 ら起動され、メッセージを出力する端末がないものと判断する。このせいで上記の
959 ":read"コマンドを使用した例は使えない。使用できるようにするには'shellredir'を
960 標準設定の">&"から">"へ変更する: >
962         :set shellredir=>
963         :read !gvim --help
965 しかしこのようにしてもgvimが標準出力を使用しないようなシステムでは機能しない。
967 ==============================================================================
968 5. $VIM と $VIMRUNTIME
969                                                                 *$VIM*
970 環境変数の"$VIM"は、設定ファイル".vimrc"のような、Vimが使用するさまざまなファ
971 イルの置き場所を見つけるために利用される。"$VIM"の値はシステムに依存する。
972 |startup|を参照。
974 全てのユーザが環境変数$VIMを設定しなくてすむように、Vimは次の順番で$VIMの値を
975 決定する:
976 1. 環境変数$VIMが定義されていればそれを使う。$VIMを定義してVimが使用するファイ
977    ルをそのディレクトリから探し出すようにできる。例: >
978         setenv VIM /home/paul/vim
979 2. 'helpfile'が問題のある環境変数を含んでいなければその値を使う(標準設定は
980    "$VIMRUNTIME/doc/help.txt"であり、これはニワトリと卵の問題を含んでいる)。
981    ファイル名("help.txt"など)の部分は取り除かれる。そしてディレクトリ名の最後
982    が"doc"、"runtime"、"vim{version}"(例えば"vim54")、のどれかならそれも取り除
983    かれる。
984 3. MSDOS、Win32、OS/2、ではVimの実行可能ファイルがあるディレクトリを使用する。
985    ディレクトリ名の最後が"/src"ならそれは取り除かれる。配布されているVim一式
986    の.zipファイルをあるディレクトリに展開し、検索パスを調整して使っているよう
987    なら便利である。ディレクトリ名の最後が"runtime"か"vim{version}"(例えば
988    "vim54")ならそれは取り除かれる。
989 4. Unixではコンパイル時に指定したインストール先のディレクトリを使用する
990    (":version"の出力を見て確認できる)。
992 このうちのどれかが使用できるならVimは環境変数$VIMを設定する。あとからその値を
993 変更するには":let"コマンドを次のように使う: >
994         :let $VIM = "/home/paul/vim/"
996                                                                 *$VIMRUNTIME*
997 環境変数の"$VIMRUNTIME"は、ヘルプファイルや構文強調表示の定義ファイルのよう
998 な、Vimが使用するさまざまな支援ファイルの置き場所を見つけるために使用される。
999 例えば、主要なヘルプファイルは通常は"$VIMRUNTIME/doc/help.txt"である。
1000 普通はユーザが自分で$VIMRUNTIMEを設定せずに、Vimに設定させる。Vimは次の順番で
1001 $VIMRUNTIMEの値を探す:
1002 1. 環境変数$VIMRUNTIMEが設定されていればそれを使う。ランタイムファイルを特殊な
1003    場所に置くときに設定する。
1004 2. "$VIM/vim{version}"ディレクトリがあればそれを使う。{version}はVimのバージョ
1005    ン番号から'-'や'.'を除いた物である。例えば"$VIM/vim54"。これは$VIMRUNTIMEと
1006    して一般的な値である。
1007 3. "$VIM/runtime"ディレクトリがあればそれを使う。
1008 4. $VIMの値を使う。これは古いバージョンとの互換性のためである。
1009 5. オプション'helpfile'が設定されていて'$'を含んでいないとき、その値を使用す
1010    る。最後の"doc/help.txt"は取り除かれる。
1012 Unixでコンパイル時に$VIMRUNTIMEの初期値を設定した場合(":version"の出力をみて確
1013 認できる)、2から4は無視される。そして5を試したあとにコンパイル時に設定した値が
1014 使用される。つまり$VIMの値を使わずにコンパイル時に設定した値を使用するというこ
1015 とである。これは$VIMが"/etc"でランタイムファイルが"/usr/share/vim/vim54"にある
1016 ような場合に便利である。
1018 このうちのどれかが使用できるならVimは環境変数$VIMRUNTIMEを設定する。あとからそ
1019 の値を変更するには":let"コマンドを次のように使う: >
1020         :let $VIMRUNTIME = "/home/piet/vim/vim54"
1022 シェル内で $VIMRUNTIME の値が必要な場合(例えば、ヘルプファイルを grep するスク
1023 リプトなど)は、次のようにすれば得られる: >
1025         VIMRUNTIME=`vim -e -T dumb --cmd 'exe "set t_cm=\<C-M>"|echo $VIMRUNTIME|quit' | tr -d '\015' `
1027 ==============================================================================
1028 6. サスペンド                                                *suspend*
1030                                         *iconize* *iconise* *CTRL-Z* *v_CTRL-Z*
1031 CTRL-Z                  ":stop"のようにVimをサスペンドする。
1032                         ノーマルモードとビジュアルモードで動作する。挿入モード
1033                         とコマンドラインモードでは、CTRL-Zは通常のキャラクタ文
1034                         字として入力・挿入される。ビジュアルモードで使用したと
1035                         きはサスペンドから復帰するとノーマルモードになる。
1036                         Note: CTRL-Z がアンドゥになる場合は |mswin.vim| を参照。
1039 :sus[pend][!]   or                      *:sus* *:suspend* *:st* *:stop*
1040 :st[op][!]              Vimをサスペンドする。
1041                         'autowrite'がオンのときに'!'を付けなかったときには、
1042                         ファイル名を持つ未保存のバッファは全て保存される。
1043                         '!'を付けたときや、'autowrite'がオフのときには、未保存
1044                         のバッファは保存されないので、後でVimをフォアグラウン
1045                         ドに戻すのを忘れてはならない。
1047 GUIモードでは、サスペンドはgvimのアイコン化として実装されている。Windows 95/NT
1048 では、gvimは最小化される。
1050 多くのUNIXシステムでは、VimをCTRL-Zでサスペンドすることが可能である。これは
1051 ノーマルモードとビジュアルモードにおいて有効である(次の章|vim-modes|を参照)。
1052 Vimを再びフォアグラウンドに戻せば、続きの作業を行うことができる。それ以外のシ
1053 ステムでは、CTRL-Zは新しいシェルをスタートさせる。これはコマンド":sh"と同じで
1054 ある。この場合、シェルを終了させればVimで続きの作業を行うことができる。
1055 訳注: |vim-modes|に何がある?
1057 X-windowsではVimをサスペンドするとセレクションの所有権が失われる。つまり選択し
1058 ていた内容を他のアプリケーションにコピーすることができない(そうしないとVimが停
1059 止しているのでセレクションを得ようとしたプログラムがフリーズしてしまう)。
1061 ==============================================================================
1062 7. 設定の保存                                                *save-settings*
1064 多くの人はvimrcファイルを手作業で編集しているだろう。この機能はそのような人に
1065 優れた利便性を提供する。vimrcファイルを自動的に作成するコマンドが用意されてい
1066 て、作成したファイルをそのまま、もしくは一部分だけをコピーして使用することがで
1067 きる。
1069                                                         *:mk* *:mkexrc*
1070 :mk[exrc] [file]        現在のキーマッピングと変更されているオプションを
1071                         [file]に保存する( [file]を省略するとカレントディレクト
1072                         リの".exrc"に保存される)。 [file]がすでにあるときには
1073                         保存しない。 {Vi にはない}
1075 :mk[exrc]! [file]       現在のキーマッピングと変更されているオプションを
1076                         [file]に保存する( [file]を省略するとカレントディレクト
1077                         リの".exrc"に保存される)。 [file]がすでにあるときには
1078                         上書き保存する。 {Vi にはない}
1080                                                         *:mkv* *:mkvimrc*
1081 :mkv[imrc][!] [file]    ":mkexrc"と同じだが [file]を省略したときにカレントディ
1082                         レクトリの".vimrc"に保存する。コマンド":version"もファ
1083                         イルに書き込まれる。 {Vi にはない}
1085 これらのコマンドは":map"コマンドや":set"コマンドをファイルに書き込む。書き込ん
1086 だコマンドを実行するとキーマッピングやオプションが現在と同じように設定される。
1087 オプションの'columns'、'endofline'、'fileformat'、'key'、'lines'、'modified'、
1088 'scroll'、'term'、'textmode'、'ttyfast'、'ttymouse'は端末やファイルに依存する
1089 ため含まれない。Note: オプションの'binary'、'paste'、'readonly'が含まれるが、
1090 これは必ずしも望むような動作ではないかもしれない。
1092 マッピングに特殊なキーが使われているときは、マッピングが正しく解釈されるよう
1093 に、オプション'cpoptions'が一時的に初期値に戻される。Viとの互換性はなくなる
1094 が、別の端末でもそのマッピングを使用できるようになる。
1096 グローバルなマッピングだけが保存される。バッファローカルなマッピングは保存され
1097 ない。
1099 一般的な方法は、デフォルトの".vimrc"ファイルを使い、幾つかの":map"や":set"コマ
1100 ンドを変更してそれを保存するというものである。
1102 一般的な方法は、デフォルトの".vimrc"ファイルを使い、":map"や":set"コマンドで設
1103 定を変更し、それをファイルに保存するというものである。まず
1104 ":source ~piet/.vimrc.Cprogs"のようなコマンドでデフォルトの".vimrc"を読み込
1105 み、実際に設定を変更してから、":mkvimrc!"を使ってカレントディレクトリに設定を
1106 保存する。もしもこのファイルをデフォルトの.vimrcにしたいならば、UNIXではホーム
1107 ディレクトリへ、Amigaならばs:へ、MS-DOSならば$VIMディレクトリへそのファイルを
1108 移動する。オートコマンド|autocommand|やモードライン|modeline|も、同じ方法を
1109 使って設定することができる。
1111                                                 *vimrc-option-example*
1112 vimrcにオプションの設定を1つだけ加えるには次のようにする:
1113 1. Vimでvimrcファイルを開く。
1114 2. 期待どおりになるようにオプションを設定する。例えば、'guifont'を設定していろ
1115    んなフォントを試す。
1116 3. オプションを設定する行を追加する。値を入力するのに'='レジスタを使用する。
1117    例えば、オプション'guifont'の設定を加えるには: >
1118    o:set guifont=<C-R>=&guifont<CR><Esc>
1119 <  [<C-R>はCTRL-R、<CR>はエンターキー、<Esc>はエスケープキー]
1120    特別な文字(特にスペース)はエスケープする必要がある。
1122 Note: .vimrcファイルを作成するときにはオプション'compatible'が持つ副作用の影響
1123 に注意する必要がある。|'compatible'|を参照。
1124 副作用を防ぐため、":mkvimrc"、":mkexrc"、":mksession"は最初にオプション
1125 'compatible'の設定を出力する。
1127 ==============================================================================
1128 8. ビューとセッション(Views and Sessions)                *views-sessions*
1130 ユーザーマニュアルの|21.4|と|21.5|で簡単に紹介されている。
1132                                                 *View* *view-file*
1133 ビューとは、あるウィンドウに適用された設定の集合である。ビューを保存しておい
1134 て、あとからそれを復元することで、開いていたテキストをまた同じように表示するこ
1135 とができる。ウィンドウに関連したオプションやマッピングも復元されるので、ビュー
1136 を保存したときと同じ状態で作業を再開することができる。
1138                                                 *Session* *session-file*
1139 セッションとは、全てのウィンドウのビューとグローバルな設定のことである。セッ
1140 ションを保存しておいて、あとからそれを復元することで、各ウィンドウのレイアウト
1141 を元に戻すことができる。セッションを利用してすばやくプロジェクト(作業単位)を切
1142 り替えることが可能で、そのプロジェクトで開いていたファイルを自動的に開くことが
1143 できる。
1145 ビューとセッションはviminfoファイルを拡張した便利な機能である。ビューとセッ
1146 ションをviminfoファイル(|viminfo-file|)と併用することで全ての情報を記録するこ
1147 とができる。
1149 保存しておいたビューやセッションを素早く再開するには引数|-S|を使う: >
1150         vim -S Session.vim
1152 これら全ては {Vi にはない} 機能である。{|+mksession|が有効な場合のみ利用可能}
1154                                                         *:mks* *:mksession*
1155 :mks[ession][!] [file]  現在のセッションを復元するためのVimスクリプトを作成す
1156                         る。
1157                         [!]を付けたときはファイルを上書保存する。
1158                         [file]を省略したときは"Session.vim"に保存する。
1160 ":mksession"の出力は":mkvimrc"の出力に似ているが、さらにいくつかのコマンドが追
1161 加されている。どのコマンドが出力されるかはオプション'sessionoptions'に依存す
1162 る。保存したファイルは、コマンド":source"で実行すると次の効果がある:
1163 1. 'sessionoptions'に"options"が含まれているときは、グローバルなマッピングとオ
1164    プションを復元する。スクリプトローカルなマッピングは復元されない。
1165 2. 'sessionoptions'に"globals"が含まれているときは、大文字で始まって1つ以上の
1166    小文字を含む名前を持ったグローバルな変数を復元する。
1167 3. 現在読み込まれているバッファを全て開放する。
1168 4. 'sessionoptions'に"curdir"が含まれているときは、カレントディレクトリを復元
1169    する。あるいは、'sessionoptions'に"sesdir"が含まれているときは、カレント
1170    ディレクトリをセッションファイルが保存されているディレクトリに変更する。
1171 5. 'sessionoptions'に"winpos"が含まれているときは、GUIウィンドウの位置を復元す
1172    る。
1173 6. 'sessionoptions'に"resize"が含まれているときは、スクリーンのサイズを復元す
1174    る。
1175 7. 'sessionoptions'に"buffers"が含まれているときは、バッファリストと各バッファ
1176    におけるカーソルの位置を復元する。隠れ(hidden)バッファや開放済み(unloaded)
1177    バッファも含めて、全てのバッファを復元する。"buffers"が含まれていないとき
1178    は、ウィンドウに表示されているバッファのみが復元される。
1179 8. 全てのウィンドウとそのレイアウトを復元する。'sessionoptions'に"help"が含ま
1180    れているときは、ヘルプウィンドウも復元する。'sessionoptions'に"blank"が含ま
1181    れているときは、無名のバッファを編集していたウィンドウも復元する。
1182    'sessionoptions'に"winsize"が含まれていて、ヘルプウィンドウや無名バッファの
1183    ウィンドウが除外されていないときは、ウィンドウのサイズも復元する(スクリーン
1184    サイズに比例する)。"winsize"が含まれていないときは、ウィンドウは妥当なサイ
1185    ズになる。
1186 9. 各ウィンドウのビューを|:mkview|の機能と同じように復元する。しかし
1187    'viewoptions'ではなく'sessionoptions'が使われる。
1188 10. セッションファイルと同じ名前で最後が"x.vim"(eXtraのx)という名前のファイル
1189    があればそのファイルを実行する。この仕組を使ってセッションに関連した処理や
1190    設定、例えばGUIのメニューを作成するなど、を行うことができる。
1191    訳注:セッションファイルがSESSION.vimならSESSIONx.vimが実行される。
1193 セッションを復元すると、内部変数の"v:this_session"(|this_session-variable|)を
1194 使って現在のセッションの名前(フルパス)を利用できる。
1195 それを利用したマッピングの例: >
1196   :nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/
1197 これは現在のセッションを保存してから、別のセッションを開こうとするものである。
1199 'sessionoptions' から "tabpages" が除かれていない限り、セッションはすべてのタ
1200 ブページを含む。|tab-page|
1202 セッションファイルが読み込まれると、自動コマンドイベント |SessionLoadPost| が
1203 発生する。
1204                                                 *SessionLoad-variable*
1205 セッションファイルを読み込んでいる間、グローバル変数 SessionLoad は 1 になる。
1206 プラグインはこれを使ってイベント SessionLoadPost が発生するまで、なんらかの作
1207 業を後回しにすることができる。
1209                                                         *:mkvie* *:mkview*
1210 :mkvie[w][!] [file]     現在のウィンドウの状態を復元するためのVimスクリプトを
1211                         作成する。
1212                         [!]を付けたときはファイルを上書保存する。
1213                         [file]を省略したり、1から9の数字を指定したときは、
1214                         'viewdir'に指定したディレクトリに適切な名前で保存され
1215                         る。'viewdir'に指定したディレクトリがないときには、そ
1216                         のディレクトリも作成される。
1217                         [file]を省略、もしくは数字を指定した場合は、常に上書き
1218                         保存される。そして、ビューを復元するときには
1219                         |:loadview|を使用する。
1220                         [file]にファイル名を指定すると、編集を再開するためのコ
1221                         マンドがそのファイルに保存される(この場合は'viewdir'は
1222                         使われない)。
1224 ":mkview"の出力は次の項目を含んでいる:
1225 1. ウィンドウで使用している引数リストの復元する。グローバルな引数リスト使って
1226    いるときにはそれが使用される。
1227    引数リストのインデックスも復元される。
1228 2. ウィンドウで編集していたファイルを開く。編集していたファイルがなければ、空
1229    のウィンドウが作成される。
1230 3. 'viewoptions'が"localoptions"を含んでいるときは、そのバッファやウィンドウに
1231    特有な(ローカルな)、マッピング、短縮(abbreviations)、オプション、を復元す
1232    る。セッションの一部としてビューを保存するときに、'sessionoptions'に
1233    "options"が含まれているときは、オプションのグローバルな値とローカルな値が両
1234    方保存される。
1235 4. 'viewoptions'が"folds"を含んでいるときは、手作業で設定した折畳みを復元す
1236    る。折畳みの開閉状態も復元する。
1237 5. ファイルにおけるカーソルとスクロールの位置を復元する。閉じた折畳みがあると
1238    うまく機能しない。
1239 6. ローカルなカレントディレクトリを復元する。グローバルなカレントディレクトリ
1240    と違っている場合のみ。
1241 訳注: |current-directory|
1243 Note: ビューとセッションは完璧ではない:
1244 - 全てを復元するわけではない。例えば、関数、オートコマンド、":syntax on"、など
1245   は含まれない。レジスタやコマンドラインの履歴などは、ビューやセッションではな
1246   く、viminfoに保存される。
1247 - グローバルなオプションの設定は、その値を初期設定から変更していた場合のみ保存
1248   される。現在の設定が初期設定とは違うときにセッションを復元しても、初期設定に
1249   は戻らない。しかしながら、ローカルなオプションは初期設定に戻される。
1250 - 既存のマッピングは警告なく上書きされる。そのようなときはよく分からないエラー
1251   が発生するだろう。
1252 - 手動で設定した折畳みや、その開閉状態を復元すると表示が乱れることがある。それ
1253   はビューを保存してから復元する間に、編集していたファイルを変更した場合であ
1254   る。
1255 - Vimスクリプトはまったくもって効率的ではない。しかしそうは言っても、自分でコ
1256   マンドを再入力するよりは断然早い。
1258                                                         *:lo* *:loadview*
1259 :lo[adview] [nr]        編集中のファイルに関連したビューを読み込む。 [nr]を省
1260                         略すると、":mkview"で保存したビューが読み込まれる。
1261                         [nr]を付けた場合は、":mkview [nr]"で保存したビューが読
1262                         み込まれる。
1264 ":mkview"と":loadview"の組は、1つのファイルに対して全部で10コのビューを管理で
1265 きる。ビューは'viewdir'で指定したディレクトリに保存される。ビューはファイル名
1266 を利用して管理されている。そのため、ファイルの名前を変更したり、(シンボリック)
1267 リンクファイルを使ってアクセスした場合は、対応するビューを見つけることができな
1268 い。
1270 たまには'viewdir'を綺麗に掃除するといいだろう。
1272 *.cファイルを編集するときにビューを自動的に保存、復元するには: >
1273         au BufWinLeave *.c mkview
1274         au BufWinEnter *.c silent loadview
1276 ==============================================================================
1277 9. viminfoファイル                          *viminfo* *viminfo-file* *E136*
1278                                                 *E575* *E576* *E577*
1280 いったんVimを終了させ、後に再び起動する時には、通常多くの情報が失われてしま
1281 う。viminfoファイルは終了する時の情報を保存しておくのに使用され、それにより再
1282 起動した時には同じ状態で編集セッションを続けることができる。
1284 ユーザーマニュアルの|21.3|で簡単に紹介されている。
1286 viminfoファイルにはこんなものを記憶できる:
1287 - コマンドラインの履歴
1288 - 検索文字列の履歴
1289 - 入力(|input()|)の履歴
1290 - レジスタの内容
1291 - 複数のファイルのマーク
1292 - ファイルの中の位置を指し示すマーク
1293 - 最後の検索/置換パターン('n'と'&'のため)
1294 - バッファのリスト
1295 - グローバル変数
1297 コンパイル時に|+viminfo|機能が無効にされていたら、viminfoファイルはサポートさ
1298 れない。
1300 セッションファイルも使用することができる。viminfoファイルは「している仕事」に
1301 依存しない、という点で異なる。通常viminfoファイルは一つしか存在しない。セッ
1302 ションファイルは、ある特定の編集作業の状態を保存するのに使う。セッションファイ
1303 ルは、作業しているプロジェクト毎に複数作成することが可能である。Viminfoもセッ
1304 ションファイルどちらも、Vimをスタートしてすぐに好みの設定を行うという目的のた
1305 めに、効果的に使用できる。 |session-file|
1307                                                         *viminfo-read*
1308 Vimが起動した時に'viminfo'オプションが空でなかったら、viminfoファイルが読み込
1309 まれ、その情報は適切に使用される。起動時にはマークは読み込まれない(しかしファ
1310 イルマークは読み込まれる)。起動時に'viminfo'オプションをどうやって設定するのか
1311 は|initialization|を参照。
1313                                                         *viminfo-write*
1314 Vimが終了する時に'viminfo'が空でなかったら、情報がviminfoファイルに保存される
1315 (もし既に存在した場合には、それと混合(マージ)される)。'viminfo'オプションは、
1316 どのような情報を保存するか、またどのくらいの量を保存するべきかその限界を指定す
1317 る為の情報を含む文字列である。('viminfo'参照)。
1319 Note: Unixにおける注意点:
1320 - viminfoファイルには入力したテキストや、使用したコマンドが記載されているの
1321   で、他人に覗かれないように保護(パーミション設定)したほうが良い。
1322 - 複数のユーザでviminfoファイルを共有したい時(例えば他のユーザへ"su"する時な
1323   ど)には、グループもしくは全員にviminfoファイルへの書き込み権限を与える。Vim
1324   が新しくviminfoファイルを保存するときに、その設定を維持する。しかし、誰にで
1325   もviminfoファイルを読ませたり書かせたりすべきではないし、注意が必要。
1326 - 現在の"本当"のユーザによって書き込み不能なviminfoファイルは、Vimは決して上書
1327   きしない。これは"su"でrootユーザになった時、しかし$HOMEがまだ通常ユーザの
1328   ホームディレクトリのままの時の支援となる。そうでないとVimはroot所有の、他の
1329   誰にも読めないviminfoファイルを作成してしまう。
1331 マークは個々のファイルに対して別々に保存される。ファイルが読み込まれ'viminfo'
1332 が空でない場合、viminfoファイルからマーク情報が読み込まれる。NOTE: マークはVim
1333 が正常に終了したときにだけ保存される。また、Vimの起動中に開かれた":bdel"されて
1334 いないファイル全てのマークが記録される。もしも":bdel"で破棄したファイルについ
1335 てマークを保存しておきたいのならば、":wv"を使う。'['と']'のマークは保存されな
1336 いが、'"'は保存される。'"'マークはファイルを開いたときに前回のカーソル位置を復
1337 元するのに非常に便利である。'viminfo'に文字"r"が与えられた時には、一切のマーク
1338 情報は記録されない。これはリムーバブルメディア上のファイルのマークが保存される
1339 のを避ける場合に使う(MS-DOSでは"ra:,rb:"を、Amigaでは"rdf0:,rdf1:,rdf2:"を使う
1340 と良い)。
1342                                                         *viminfo-file-marks*
1343 大文字のマーク('Aから'Z)はviminfoファイルが書かれるときに、保存される。数字の
1344 マーク('0から'9)はちょっと特別である。viminfoファイルが書き込まれる時(終了時、
1345 もしくは":wviminfo"コマンド実行時)に、'0が現在のファイルの現在のカーソル位置に
1346 設定される。古い'0は'1になり、'1は'2になり、以下同様。"1から"9の削除レジスタに
1347 起こることに似ている。'0に記憶する位置が'1から'9に既出であった時には、同じ位置
1348 が2度記憶されるのではなく、そのレジスタが'0に浮き上がってくる。結果として"'0"
1349 を使用すると、最後にVimを終了した時のファイルとその行に戻ることができる。起動
1350 後直ちにそれを行うには、次のコマンドを試す: >
1352         vim -c "normal '0"
1354 シェルではエイリアスをこんな風に使用して: >
1356         alias lvim vim -c '"'normal "'"0'"'
1358 特定のファイルのマークを保存しないようにするには'viminfo'に"r"フラグを追加す
1359 る。
1361 Viminfoファイルの名前                                  *viminfo-file-name*
1363 - viminfoファイルの名前を特に指定しない時は、UnixとOS/2では"$HOME/.viminfo"
1364   に、Amigaでは"s:.viminfo"に、MS-DOSとWin32では"$HOME\_viminfo"になる。MS-DOS
1365   とWin32で、$HOMEが設定されていない時には、"$VIM\_viminfo"になる。$VIMも設定
1366   されていない時には"c:\_viminfo"が使われる。OS/2では、$HOMEが設定されず$VIMが
1367   設定されていれば"$VIM/.viminfo"となる。
1368 - 'viminfo'オプションの'n'フラグは、別の名前のviminfoファイルを使うために、そ
1369   のファイル名を指定するのに使用される|'viminfo'|。
1370 - Vimの起動引数"-i"も、viminfoとして別のファイルを指定するのに使用できる|-i|。
1371   ファイル名として"NONE"(全て大文字)が与えられると、viminfoファイルは使用(読み
1372   込みも書き込みも)されない。
1373 - 起動後に、コマンドで別の名前を与えると、デフォルト名や'viminfo'や"-i"で与え
1374   た名前を上書きすることができる("-i"はNONEが指定されていない時に限る)。
1376 文字エンコーディング                                      *viminfo-encoding*
1378 viminfoファイルのテキストはオプション'encoding'で指定したエンコーディングで保
1379 存される。通常は'encoding'の設定はいつも同じなので、問題なく機能する。しかしな
1380 がら、もしもviminfoファイルを読み込むときに、'encoding'の設定がviminfoファイル
1381 を保存したときとは違うエンコーディングに設定されていると、いくつかのテキスト
1382 (ASCII以外の文字)は不正な文字になってしまう。それを回避するには、オプション
1383 'viminfo'に'c'フラグを追加する: >
1384         :set viminfo+=c
1385 そうするとVimは、viminfoファイルを保存したときの'encoding'から現在の'encoding'
1386 へとテキストを変換する。これを利用するには|+iconv|が有効になっている必要があ
1387 る。ファイル名は変換されない。
1390 viminfoファイルを手動で読み書きする
1392 viminfoファイルを手動で読み書きするのに2つのコマンドが用意されている。これは同
1393 時に起動している複数のVim間で、レジスタの内容を交換するのに利用できる: まず片
1394 方で":wv"してから、もう片方で":rv"する。既にレジスタに何かを記憶している場合に
1395 は、":rv!"する必要があることに注意。またこれを行うとコマンドラインの履歴を含む
1396 全ての情報が、送り側のVimのもので上書きされてしまうことにも注意。
1398 viminfoファイル自体を手で編集することもできるが、Vimによって作られる正しい
1399 フォーマットのviminfoを元にすることを推奨する。一度試してみればどういう構造に
1400 なっているかよく分かるだろう。これを覚えておけば、Vimを起動したときにいつでも
1401 設定しておきたい内容を、"~/.my_viminfo"というようなファイルに用意しておくとき
1402 に重宝する。例としては、あるデータをレジスタに予め読み込んでおくとか、コマンド
1403 ライン履歴に特定のコマンドをいれるとか、そういう使い方がある。.vimrcファイルに
1404 次の一行を入れておけば >
1405         :rviminfo! ~/.my_viminfo
1406 その情報を読み込むことができる。ファイルの種類によって(Cコードだとかvimスクリ
1407 プトだとか)、異なるviminfoを持ち、":autocmd"を組み合わせることでファイル名に基
1408 づいたりしながら、それらを使用することもできる(|:autocmd|)参照。
1410                                                         *viminfo-errors*
1411 Vimがviminfoファイルを読み込み中にエラーを検出すると、ファイルの上書きはされな
1412 くなる。もしも10個以上のエラーがある場合には、それ以上viminfoファイルを読み込
1413 むのを止める。こうするのはviminfoファイル内のファイル名が間違っている場合、突
1414 発的にそのファイルを破壊してしまうのを避けるためである。これは"vim -R file"と
1415 したいときに、誤って"vim -i file"とタイプしてしまうと起こり得る(そう、偶然何人
1416 かが実際にそうしてしまったよ!!)。viminfoファイルにエラーがあったけれども
1417 viminfoを上書きしたいのならば、エラーを修正するか、またはファイルを消すかのど
1418 ちらかが必要(Vimの実行中は、殆どの情報が回復してしまう)。
1420                                                    *:rv* *:rviminfo* *E195*
1421 :rv[iminfo][!] [file]   viminfoファイルを [file](デフォルト:上記参照)から読込
1422                         む。[!]が与えれらた場合、既に設定されている情報(レジス
1423                         タ、マーク、その他)は上書きされる。{Vi にはない}
1426                                         *:wv* *:wviminfo* *E137* *E138* *E574*
1427 :wv[iminfo][!] [file]   viminfoファイルを [file](デフォルト:上記参照)として保
1428                         存する。まず既存のファイルの(古い)情報が読み込まれ、
1429                         Vim内部の(新しい)情報とマージ(混合)されてから、ファイ
1430                         ルに保存される。[!]を指定すると古い情報は読み込まれ
1431                         ず、Vim内部の情報だけが保存される。'viminfo'が空("")に
1432                         設定されている場合は、100個のファイルのマークが書き出
1433                         される。
1434                         "E138: Can't write viminfo file"("E138: viminfoファイ
1435                         ルを保存できません")というエラーが出たときには古い一時
1436                         ファイル(例えば~/.viminf*)が残っていないことを確か
1437                         め、.viminfoファイルを保存するディレクトリの書込み権限
1438                         を確認すること。
1439                         {Vi にはない}
1441  vim:tw=78:ts=8:ft=help:norl: