1 *starting.txt* For Vim バージョン 7.0. Last change: 2006 Apr 25
4 VIMリファレンスマニュアル by Bram Moolenaar
9 1. Vimの起動引数 |vim-arguments|
10 2. Amiga版のVim |starting-amiga|
11 3. eVimについて |evim-keys|
12 4. 初期化 |initialization|
13 5. $VIM と $VIMRUNTIME |$VIM|
15 7. 設定の保存 |save-settings|
16 8. ビューとセッション |views-sessions|
17 9. viminfo ファイル |viminfo-file|
19 ==============================================================================
20 1. Vimの起動引数 *vim-arguments*
22 たいていは1つのファイルを編集するために次のようなコマンドでVimを起動する
26 より一般的に言えば、Vimは次の書式で起動することができる:
28 vim [option | filename] ..
30 オプション引数とファイル引数は混在でき、幾つでも与える事ができる。しかし引数を
33 さまざまなViのバージョンとの互換性に付いては|cmdline-arguments|を参照。
35 正確には、以下の5つの項目から1つを選んで編集が開始される:
38 filename 1つ以上のファイル名が与えられた場合。まずは最初の1つが編集ファ
39 イルとしてバッファに読み込まれる。カーソルはそのバッファの1行
41 '-'で始まるファイル名を指定するには、オプションと区別するため
44 < "--"の後の全ての引数はファイル名として解釈されるので、その他の
45 オプションや引数"+command"は使用することができない。
48 - この引数はExモードで起動するかどうかで意味が異なる。
53 < 新しいバッファに、標準入力を読み込んで編集を始める。このコマン
54 ドを使用するとまず標準入力を読み込み、それから標準エラー出力を
56 find . -name "*.c" -print | vim -
57 < バッファには未保存のテキストが含まれるので、「変更(modified)」
58 のマークがつけられる。ただし読み込み専用モードで起動する場合は
67 < サイレントモードで起動する。|-s-ex|を参照。
70 -t {tag} タグを開く。{tag}がtagsファイルから検索され、関連づけられた
71 ファイルが現在のファイルとされ、関連づけられたコマンドが実行さ
72 れる。大抵これはCプログラムを編集するときに使用され、"tag"は関
73 数名である事が多い。それにより、その関数を含むファイルが自動的
74 に開かれ、カーソルがその関数の定義位置に設定される(|tags|を参
78 -q [errorfile] クイックフィックスモードで起動。 [errorfile]に指定したファイル
79 が読み込まれ最初のエラーが表示される。|quickfix|を参照。
80 [errorfile]が与えられない場合、オプション'errorfile'がファイル
81 名として使用される。省略値に関しては'errorfile'を参照。
84 (nothing) 上記の4つのうち、どれも指定せずにVimを起動すると、新しいバッ
85 ファが用意される。それは名前のない空のバッファである。
88 起動時のモードはプログラム名を"vim"とは別の名前にすることで指定できる。それは
89 次のようにオプションを与えたのと同じである:
90 ex vim -e Exモードで起動(|Ex-mode|を参照)。 *ex*
91 exim vim -E 改良版Exモードで起動(|Ex-mode|を参照)。 *exim*
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"という名前を付けることができる。もちろんその名前で実行可能なファイルが
110 UNIXでは通常、Vimという名前の実行可能ファイルが一つあり、それにに対して違う名
111 前のリンクが用意される。使用しているシステムがリンクをサポートせず、実行ファイ
112 ルのコピーを幾つも作りたくないのならば、リンクの代わりにエイリアスを使うことも
118 オプション引数はどんな順番で与えても良い。一文字のオプションは一つのダッシュ
119 (-)の後に組み合わせる。引数"--"の後にはオプション引数を置くことはできない。
121 VMSでは全てのオプション引数は小文字であるとみなされる。大文字を指定するにはス
122 ラッシュを前に置く。つまり"-R"でリカバリモード、"-/R"で読み込み専用となる。
125 -h 使用法(ヘルプ)を表示して終了する。{Viにはない機能}
126 そのテキストを保存するには|info-message|を参照。
129 --version バージョン情報を表示して終了する。出力は|:version|コマンドと一
131 そのテキストを保存するには|info-message|を参照。
134 --noplugin プラグインを読み込まない。'loadplugins'オプションをオフにす
136 Note: |-u|引数でもプラグインを読み込まないようにできる:
144 --literal ファイル名を文字どおり解釈する。ワイルドカードを展開しない。
145 Unixでは必要ない、Vimは常にファイル名を文字どおり解釈する(シェ
147 全てのファイル名に適用される。この引数の前に指定したものも同
151 +[num] 最初に編集されるファイルの"num"行目にカーソルを置いて開く。
152 "num"がなかった場合には、カーソルは最終行に置かれる。
155 +/{pat} 最初に編集されるファイルの、"pat"を含む最初の行にカーソルを置
156 いて起動する(指定可能な検索パターンについては|pattern|を参
159 +{command} *-+c* *-c*
160 -c {command} 最初のファイルが読み込まれた後(加えてそのファイルに適応される
161 autocommandとmodelineが処理された後)に{command}が実行される。
162 "command"はExコマンドとして解釈される。"command"にスペースを含
163 んでいる場合には、ダブルクォートで挟まれている必要がある(これ
164 は使われているシェルに依存する)。例: >
167 vim -c "set ff=dos" -c wq mine.mak
169 Note: Vimコマンドの引数として"+"か"-c"をあわせ、最大10個まで使
170 うことができる。これらの引数は与えられた順番で実行される。"-S"
174 --cmd {command} *--cmd*
175 vimrcファイルを処理する前に{command}を実行する。それ以外は
176 -c {command} と同じである。"-c"引数とは別に、10個まで使うこと
180 -S {file} 最初のファイルが読み込まれた後に{file}を実行する。これは次のも
183 < "-c"と混ぜて使うことができ、複数指定できる。"-c"と合わせて10個
185 {file}の先頭文字には"-"は使えない。
188 -S "-S Session.vim"と同じ。最後の引数として使われたときや、その後
189 に他のオプション引数が続いたときのみこのように解釈される。
192 -r リカバリモード。ファイル名の引数なしで実行した場合には、存在す
193 るスワップファイルのリストが表示される。ファイルを指定すると、
194 クラッシュしたセッションを復活させるために、スワップファイルが
195 読み込まれる。|crash-recovery|を参照。
198 -L -rと同じ。{幾つかのバージョンのViだけにある: "List recoverable
199 edit sessions"(復活可能な編集セッションのリスト)のListのL}
202 -R 読み込み専用モード。オプション'readonly'が、編集される全ての
203 ファイルに設定される。これにより、まだバッファを編集することは
204 できるが、偶然にファイルを上書きしてしまうようなことは防がれ
205 る。もしも、読み込み専用モードにいることを忘れてバッファへ変更
206 を行ったとしても、":w!"のようにExコマンドに「ビックリマーク」
207 を付けることで上書きすることが可能。'readonly'オプションは
208 ":set noro"としてオフに設定することが可能である(オプションを説
209 明した章|options|を参照)。その後の編集は読み込み専用モードでは
210 なくなる。実行ファイルを"view"として起動した場合は、この-R引数
211 と同じ動作になる。オプション'updatecount'は10000に設定され、こ
212 れはスワップファイルがそう頻繁には自動更新されなくなるというこ
216 -m 変更を保存できなくする。オプション'write'がオフに設定され、
217 ファイルを保存することができなくなる。オプション'write'をオン
222 -M 変更できないようにする。オプション'modifiable'がオフに設定さ
223 れ、変更を加えることができなくなる。さらに、オプション'write'
224 がオフに設定され、ファイルを保存することができなくなる。
225 'modifiable'と'write'をオンにすれば、変更を加えて保存できるよ
229 *-Z* *restricted-mode*
230 -Z 制限モード。外部シェルを実行するあらゆるコマンドの使用を不許可
231 にする。これにはサスペンドであるCTRL-Zや、":sh"、フィルタリン
232 グ、system()関数、バッククォートの評価、その他も含まれる。
236 -g VimをGUIモードで起動する。|gui|を参照。 {Vi にはない}
239 -v ExをViモードで起動する。実行ファイルが"ex"や"gvim"である時にだ
240 け、違いが現れる。gvimでは可能ならば"GUI"ではないモードで起動
244 -e VimをExモードで起動する|Q|。実行ファイルの名前が"ex"以外の時に
248 -E Vimを改良版Exモードで起動する|gQ|。実行ファイルの名前が"exim"
253 -s サイレント(もしくはバッチ)モード。Vimが"ex"で起動されるか、こ
254 のオプションよりも先に"-e"が付いていた場合にだけ働く。そうでな
255 い場合には|-s|を参照。|-s|として使うときには引数をとる。
256 端末の替わりにファイルからExコマンドを実行する場合に使用され
257 る。ほとんどのプロンプトとメッセージは抑制される。警告とエラー
259 次のコマンドの出力は標準出力へ表示される:
264 'verbose'が0以外のときにはメッセージは抑制されずに標準エラー
266 'term' と $TERM は考慮されない。
267 Vimが停止しているようだったら"qa!<Enter>"と入力してみてほし
268 い。Vimがユーザーの入力を待っているときでもプロンプトは表示さ
270 初期化処理はスキップされる(このオプションが引数"-u"と一緒に使
273 vim -e -s < thefilter thefile
276 -b バイナリモード。ファイルを入出力する再に<NL>だけを行のセパレー
277 タとして認識するようになる。オプション'expandtab'は無効化され
278 る。オプション'textwidth'は0に設定される。'modeline'はオフに設
279 定される。オプション'binary'がオンに設定される。これは
280 vimrc/exrcのファイルが読み込まれた直後、引数で与えられたファイ
281 ルが読み込まれるよりも前に行われる。|edit-binary|も参照。
285 -l Lispモード。オプション'lisp'と'showmatch'をオンに設定する。
288 -A アラビア語モード。オプション'arabic'をオンに設定する。
289 |+arabic|(これは|+rightleft|も含んでいる)が有効なときだけ使用
290 できる。そうでないときにはVimはエラーメッセージを出力して終了
294 -F Farsi(ペルシア語)モード。'fkmap'と'rightleft'オプションをオン
295 に設定する。(|+rightleft|と|+farsi|有効にしてコンパイルした時
296 にだけ有効。そうでない場合Vimはエラーメッセージを表示して終了
301 -H Hebrew(ヘブライ語)モード。オプション'hkmap'と'rightleft'をオン
302 に設定する。(|+rightleft|を有効にしてコンパイルした時にだけ使
303 用可。そうでない場合Vimはエラーメッセージを表示して終了する)。
307 -V[N] 詳細表示する。オプション'verbose'を[N]に設定する(Nを省略した場
308 合は10が設定される)。":source"が実行される度、viminfoの読み書
309 きを行う度に情報が表示される。Vimの起動時と終了時の動作を調べ
313 -V と同様で、さらに 'verbosefile' を {filename} に設定する。そ
314 の結果、メッセージは表示されずにファイル {filename} に書き出さ
315 れる。{filename} は数字で始まってはならない。
318 -D デバッグする。スクリプトの最初のコマンドを実行するところからデ
319 バッグを開始する。|debug-mode|
320 {|+eval|が有効な場合のみ利用可能}
324 -C コンパチブルモード。オプション'compatible'をオンに設定する。
325 ファイル.vimrcファイルが存在する場合にもViとの互換性を得ること
326 ができる。あとで":set nocompatible"として設定を変更することが
327 できる。|compatible-default|も参照。{Vi にはない}
330 -N 非コンパチブルモード。オプション'compatible'をオフに設定する。
331 ファイル.vimrcがないときに、'nocompatible'(Vimの拡張を有効)に
332 することができる。|compatible-default|も参照。{Vi にはない}
335 -y 簡易モード。|evim|や|eview|と同じ。'insertmode'をオンに設定し
336 て起動し、モードレスエディタのように振舞う。このスイッチを指定
337 すると、$VIMRUNTIME/evim.vimが自動的に読み込まれ、一般的なエデ
338 ィタと同じ操作ができるようなマッピングが設定される。
339 |evim-keys|を参照。利用可能ならGUIが使用される。
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 ると良い。この方法だとクラッシュからの復旧の可能性を保てる。
360 -o[N] N個のウィンドウを水平分割して開く。[N]が与えられない場合には、
361 引数で指定された全てのファイルに対して1個のウィンドウが開かれ
362 る。画面に十分な広さがない場合には、始めのほうの数個のファイル
363 だけがウィンドウを伴って表示される。逆にファイルの数よりもウィ
364 ンドウの数が多く指定された場合、多い分のウィンドウは空ファイル
369 -O[N] N個のウィンドウを垂直分割して開く。それ以外は|-o|と同じ。
370 -oと-Oが両方指定されたときは最後に指定された方を使用する。
374 -p[N] N 個のタブページを開く。[N] が省略されると、引数として与えられ
375 た各ファイルに対し1つずつタブページを開く。最大値は
376 'tabpagemax' ページ(既定値は 10)である。引数よりも多くのタブペー
377 ジが作られる場合は、最後の数個のタブページは空ファイルを開く。
382 -T {terminal} 端末の種類を"terminal"に設定する。これはVimがユーザの端末へ送
383 るコードに影響を与える。Vimはユーザが使用している端末の種類を
384 自分で判断することができるので、通常これは必要がない
385 (|terminal-info|を参照)。{Vi にはない機能}
388 -d diffモードで起動する。|vimdiff|と同じ。
389 {Vi にはない} {|+diff|が有効な場合のみ利用可能}
391 -d {device} Amiga専用機能。|+diff|が無効な場合のみ利用可能。|-dev|と同じよ
394 -d {device} Amiga専用機能: {device}が編集用に開かれる。
395 普通、ウィンドウの位置とサイズを設定するために"-d
396 con:x/y/width/height"の形式で指定する。例、"-d
397 con:30/10/600/150"。しかしその他のAUX:のようなデバイスの編集を
398 開始することにも使用できる。{Vi にはない}
400 -f Amiga専用機能: Vimを新しいウィンドウで起動しない。編集作業が終
401 わるのを待つプログラム(メールソフトやニュースリーダ)によって
402 Vimが起動される時に、このオプションは使用される。
405 一般的なGUI: Vimを起動したプログラム(プロセス)から独立しない。
406 'f'は"foreground"を意味する。省略すると、GUI版のVimは新しいプ
407 ロセスへforkして、現在のプロセスは終了してしまう。gvimの編集
408 セッションが終わるのを待つプログラム(メールソフトやニュース
409 リーダなど)には、"-f"を使うべきだろう。gvimがforkしないように
410 するには、自分の. gvimrcの中で'guioptions'に'f'を加えれば良
412 Note: "-gf"でGUIをフォアグラウンドで実行開始できるが、"-fg"だ
413 と前景色の設定になってしまう。|gui-fork|参照。
417 --nofork GUI: forkしない。|-f|と同じ。
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の初期化も含め、全て省略
429 {vimrc}が"NORC"(全部大文字)のときは"NONE"と同じように処理され
431 "-u"引数を使用すると副作用としてオプション'compatible'がオンに
432 設定される。これは予期せぬ動作を引き起こすかもしれない。
437 -U {gvimrc} GUIがスタートする時にファイル{gvimrc}が読込まれる。その他のGUI
438 初期化はスキップされる。{gvimrc}にNONEが指定された場合、初期化
440 例外: システムのメニューファイルは常に読込まれる。
444 -i {viminfo} デフォルトのviminfoの代わりにファイル{viminfo}を使用する。
445 "NONE"(全て大文字)が指定された場合には、'viminfo'が指定された
446 り、":rv"や":wv"が使われても、viminfoは読み書きともに使用され
451 -x ファイルの読み書き時に暗号化を施す。暗号の鍵としてオプション
452 'key'に設定された値を使用する。全ての書き込みは、テキストに対
453 して鍵を使って暗号化を行ってから なされる。ファイルを読込む時
454 には、Vimは暗号化ファイルかチェックし、自動的に鍵を聞いてくる
455 ので、引数'-x'は必要でない。|encryption|
458 -X Xサーバと通信しない。そうして、カレントウィンドウのタイトルを
459 取得したり、Xのクリップボードを使ったコピー/ペーストを使用した
460 りしない。端末エミュレータでVimを使用するときにXサーバとの通信
462 UnixかVMSで|+X11|が有効な場合のみ意味がある。
463 特定の端末を使用するときだけ通信を無効にするには、オプション
465 X11 Session Management Protocol (XSMP) の処理が組み込まれてい
466 る場合、その通信にも大きな延滞が生じるため、無効にする。
467 (例えばクライアントとサーバが通信するため)あとからXサーバとの
468 通信をつなげるには|serverlist()|関数を呼び出す。ただしXSMPの処
473 -s {scriptin} スクリプトファイル{scriptin}が読込まれる。ファイルの中のキャラ
474 クタは、全てユーザがタイプしたものとして解釈される。エディタが
475 終了する前にファイルの終端に達した場合、以降のキャラクタはキー
476 ボードから読込まれる。Exモード動作時には働かない、|-s-ex|を参
477 照。|complex-repeat|も参照。
482 -w{number} オプション 'window' を {number} に設定する。
485 -w {scriptout} Vimを終了するまで、ユーザが入力した全部の文字が記録され、ファ
486 イル{scriptout}に書き出される。これは"vim -s"や":source!"で読
487 込まれるスクリプトファイルを作成するのに役立つ。既にファイル
488 "scriptout"が存在する場合には、そのファイルに追加保存する。
490 {scriptout} は数字で始まってはならない。
494 -W {scriptout} -wに似ているが、アペンド(追加)せずに、既にあるファイルを上書き
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 にはない}
516 Vimサーバの名前を指定する。これは通信先のサーバ名、あるいは起
518 |--servername|を参照。 {Vi にはない}
521 {keys}をVimサーバに送り、終了する。
522 |--remote-send|を参照。 {Vi にはない}
525 Vimサーバで{expr}を評価し、その結果を標準出力に出力する。
526 |--remote-expr|を参照。 {Vi にはない}
529 稼働しているVimサーバの一覧を出力する。
530 |--serverlist|を参照。 {Vi にはない}
532 --socketid {id} *--socketid*
533 GTK+ GUIのVimのみ。GtkPlugを使用し、別アプリケーションのウィン
534 ドウで起動するようにする。詳細は|gui-gtk-socketid|を参照。
537 --echo-wid *--echo-wid*
538 GTK+ GUIのVimのみ。ウィンドウのIDを標準出力に出力する。この値
539 はgvimをkpartウィジェットに埋め込むのに使用できる。出力の書式
544 --role {role} *--role*
545 GTK+ 2 GUIのみ。メインウィンドウの役割(role)を{role}に設定する
546 。ウィンドウの役割はウィンドウマネージャがウィンドウを識別して
547 、ウィンドウの位置等を復元するのに使われる。この引数はログイン
548 時にセッションを復元するときに自動的に使用される。
549 |gui-gnome-session|を参照。
552 -P {parent-title} *-P* *MDI* *E671* *672*
553 Win32のみ。親になるアプリケーションのタイトルを指定する。可能
554 であればVimはそのMDIアプリケーションのウィンドウ内で起動する。
555 {parent-title}が親アプリケーションのウィンドウのタイトルに使わ
557 Note: まだ簡単に実装されているだけである。全てのアプリケーショ
558 ンで動くわけではない。メニューは機能しない。
562 -nb:{hostname}:{addr}:{password}
563 Netbeansと接続し、エディタサーバになる。2番目の型は接続情報を
564 格納したファイルを指定する。3番目の型はNetbeansに接続するため
565 のホスト名、アドレス、パスワードを指定する。|netbeans-run|
567 複数のファイルに書かれた名前を変更するスクリプトファイルの例:
568 置換コマンドと:wqコマンドを含んだファイル"subs.vi"を作る: >
573 変更したいファイルに対してVimを実行する: >
575 foreach i ( *.let ) vim -s subs.vi $i
577 実行ファイルが"view"だったならば、Vimは読込み専用モードで起動する。"view"から
578 "vim"へハードリンクかシンボリックリンクを作成すると便利だろう。"vim -R"とする
581 実行ファイルの名前が"ex"ならば、VimはExモードで起動する。これは":"コマンドだけ
582 しか使えないことを意味している。しかし引数"-v"が与えられれば、Vimは常にノーマ
585 unix互換のシステムでX11 GUIサポートが有効ならさらに多くの引数が利用可能であ
586 る。|gui-resources|を参照。
588 ==============================================================================
589 2. Amiga版のVim *starting-amiga*
591 VimをWorkbenchから起動する *workbench*
592 --------------------------
594 Workbench上でアイコンを2度クリックすればVimを起動することができる。そうすると
597 "Project"アイコンを使用することで、1つ以上のファイルを開くことができる。アイコ
598 ンの"Default Tool"にはVimの実行ファイルの完全なパスを設定し、".info"ファイルの
599 名前には、編集するテキストファイルの名前を設定する。このアイコンを2度クリック
600 すると、Vimが起動してそのファイルを開く(そのファイルがあれば)。シフトキーを押
601 しながらアイコンをクリックし、最後のファイルを2度クリックすることで、複数の
602 ファイルを開くことができる。これら全てのアイコンの"Default Tool"は同じでなけれ
605 Workbenchからではファイル名以外の引数は、Vimへ与えることができない。
607 Vimウィンドウ *amiga-window*
610 Vimは起動されたCLIウィンドウの中で動作する。Vimが"run"や"runback"コマンド、
611 あるいやWorkbenchから起動された場合には、自分自身でウィンドウを開く。
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 コマンドを覚えることで編集作業がより簡単になるということを利用者が感付いてくれ
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のみ。選択時に自動的にコピーしない
657 <Down> 実際の行ではなく表示された行の単位で移動する
660 <BS> ビジュアルモードで選択範囲を削除する
661 CTRL-X ビジュアルモードで選択範囲を切り取ってクリップボードに
664 CTRL-C ビジュアルモードで選択範囲をクリップボードにコピーする
666 CTRL-V クリップボードから貼り付ける(どのモードでも)
671 <M-Space> システムメニューを表示
673 <C-Tab> 次のウィンドウへ。CTRL-W w と同じ
674 <C-F4> ウィンドウを閉じる。CTRL-W c と同じ
677 - ":behave mswin"が使用される|:behave|
679 - ファイルタイプ別の機能が有効になる。ファイルタイプ用のプラグインやインデント
681 - テキストファイルでは'textwidth'が78に設定される
683 ヒント: ノーマルモードのコマンドを連続して使用するにはCTRL-Lを使用する。
686 ==============================================================================
687 4. 初期化 *initialization* *startup*
689 このセクションはVimの非GUIバージョンについて書く。GUIをスタートさせた時の追加
692 スタート時に、Vimは環境変数とファイルを調べ、然るべく値を設定する。Vimはこの順
695 1. オプション'shell'と'term'を設定する *SHELL* *COMSPEC* *TERM*
696 環境変数SHELLが存在するならば、オプション'shell'を設定するのに使われ
697 る。MS-DOSとWin32ではSHELLが設定されていない場合COMSPECの値が使用され
699 環境変数TERMが存在するならば、オプション'term'を設定するのに使われる。
700 しかし、後で GUI を開始するときに 'term' は変更される(下のステップ 8
704 Vimを起動するときに指定したオプション引数やファイル名を調べる。指定さ
705 れたファイルのバッファを作成する(まだ読み込まない)。
706 引数 |-V| を使うと、初期化処理のデバッグ用にこれ以降で起こることを表示
709 3. 環境変数とファイルのExコマンドを実行する
710 環境変数の値は一つのExコマンドラインとして読まれるので、複数のコマンド
711 を実行したい時には'|'か"<NL>"で区切る必要がある。
713 "vimrc"ファイルは初期化コマンドを含んだファイルである。vimrcファイルは
714 一行ずつExコマンドとして実行される。"exrc"とほぼ等価である。それらは同
715 じタイプのファイルであるが、"exrc"が常にViによって使われるのに大して、
716 "vimrc"はVim特有のものである。|vimrc-intro|も参照。
718 個人の初期化ファイルの推奨される配置場所:
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"を使用するとさらにプラグインも読み込まな
730 起動引数"-s"によりVimがExモードで起動されたならば、続く4.までの初期化
731 処理がスキップされる。オプション"-u"だけが処理される。
733 a. Vimを|evim|や|eview|として、あるいは|-y|引数を指定して起動すると
734 $VIMRUNTIME/evim.vimが実行される。
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|も参照) (*)
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|参照。
766 - ユーザのexrcファイル。vimrcと同じだが、vimrcがexrcによって置き換え
767 られている。しかし ".exrc" と "_exrc" のどちらか1つだけが使われる。
768 これはシステムによる。(*)の注釈は適用されない。
770 d. 'exrc'オプションがオン(初期状態ではオフ)の場合、現在のディレクトリで4
771 つのファイルが検索される。最初に見つかったものだけが使用され、残りは無
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*
785 :runtime! plugin/**/*.vim
786 < オプション'runtimepath'に指定された各ディレクトリのサブディレクトリ
787 "plugin"にある拡張子が".vim"となっているファイルを実行する(各ディレク
788 トリごとに名前順で実行される)。サブディレクトリに対しても再帰的に検索
791 - vimrcファイルでオプション'loadplugins'がオフに設定された。
792 - 起動時の引数に|--noplugin|が指定された。
793 - 起動時の引数に"-u NONE"が指定された。
794 - |+eval|の機能を無効にしてVimをコンパイルした。
795 Note: 引数に"-c set noloadplugins"と指定しても意味がない。このコマンド
796 はこの時点ではまだ実行されない。"--cmd 'set noloadplugins'" とすればよ
799 5. 'shellpipe'と'shellredir'を設定する
800 それ以前に設定されていなければ、'shell'オプションに従って'shellpipe'と
801 'shellredir'オプションが設定される。つまり自分で設定しなくても、Vimが
802 適切な'shellpipe'と'shellredir'の値を設定してくれる。
804 6. "-n"コマンド引数が使用されていたら、'updatecount'を0に設定する
807 Vimの起動時に"-b"フラグが与えられた場合、この時点でバイナリ編集用のフ
811 "gvim"として起動された場合、GUIの初期化が行われる。|gui-init|参照。
814 'viminfo'オプションが空でなければ、viminfoファイルが読み込まれる。
817 10. quickfixファイルを読み込む
818 Vimに"-q"フラグが与えられた場合、quickfixファイルが読み込まれる。これ
822 |-o|フラグが与えられた場合、ウィンドウが開く(しかしまだ表示されない)。
823 |-p|フラグが与えられた場合、タブページが作られる(しかしまだ表示されな
825 スクリーンが切り替えられると、描画が始まる。
826 "-q"フラグがVimに与えられた場合、最初のエラーにジャンプする。全ての
829 12. スタートアップコマンドが実行される
830 "-t"フラグがVimに与えられた場合、タグにジャンプする。
831 |-c|と|+cmd|引数で与えられたコマンドが実行される。
832 'insertmode'オプションがセットされていると、インサートモード入る。
833 |VimEnter|のautocommandが実行される。
838 全ての編集セッションに有効な、デフォルト設定とキーマッピングを設定するvimrc
839 ファイルを作成する。それを既に3bで述べた位置に置く:
840 ~/.vimrc (Unix and OS/2)
842 $VIM\_vimrc (MS-DOS and Win32)
843 Note vimrcファイルを作るとデフォルトで'compatible'オプションがオフに設定され
844 る。|compatible-default|参照。
847 特定のディレクトリだけにおいて編集時に必要になるコマンドを vimrcファイルに書
848 き、そのディレクトリに".vimrc" (MS-DOSとWin32は"_vimrc")という名前で置く。
849 NOTE: Vimに、これらのファイルを見るように指定するには、'exrc'オプションをオン
850 にする必要がある。|trojan-horse|(トロイの木馬)も参照。
853 これは複数人で使うUNIXシステムを管理し、全員のデフォルト設定を行いたい時に適用
854 される。デフォルト設定とキーマッピングを行うコマンドをvimrcファイルに記述し、
855 ":version"コマンドで表示される場所に置く。
858 オプションの値を変えたときや、キーマッピングを作成した時には、それらを後で再利
859 用するためにvimrcファイルに保存したいだろう。現在の設定状態をファイルに保存す
860 るためには|save-settings|を参照。
863 Viは環境変数EXINITとファイル"~/.exrc"を初期化に使用する。もし(Vimの設定が)Viに
864 干渉して欲しくないならば、それらを使う替わりにVIMINITとvimrcを使用する。
867 Amigaには2種類の環境変数が存在する。1つはDOS 1.3(かそれ以上)のsetenvコマンド
868 で、これはVimによって認識される。AmigaDos 1.3のマニュアルを参照。古いManxのSet
869 コマンド(バージョン5.0以前)の環境変数は、認識されない。
872 MS-DOS風(MS-DOS自信、Win32、そしてOS/2)では、全てのvimrcファイルは行区切文字と
873 して<CR> <NL>を使用していると仮定する。<NL>だけを行区切文字として持つファイル
874 や、":map xx yy^M"のような設定のファイルを使う場合、問題を引き起こす。末尾の^M
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'を
892 以上の振る舞いは次の方法で無効にすることができる:
893 - コマンドライン引数に"-N"を与えた場合、vimrcファイルが存在しなくても
894 'nocompatible'が使用される。
895 - コマンドライン引数に"-C"が与えられた場合、vimrcが存在しても'compatible'が使
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"コマンドは表示され、どのようなマッピングがなされたか確認することがで
910 ローカルなvimrcファイル内で全てのコマンドを実行したい場合には、EXINIT
911 かVIMINIT環境変数か、グローバルな"exrc"もしくは"vimrc"ファイルで'secure'オプ
912 ションをオフに設定する。現在のディレクトリにある"vimrc"と"exrc"からは、理由は
914 UNIXシステムでは、vimrcファイルの所有権がユーザにないときだけ'secure'
915 が適用される。警告: vimrcかexrcを含むアーカイブを展開したときには、そのファイ
916 ルはあなた自身のものになる。そこには安全性保護などない。Vimを起動する前に現在
917 のディレクトリにvimrcファイルがないかチェックするか、'exrc'オプションをオフに
918 設定したほうが良い。幾つかのUNIXシステムでは一般ユーザがファイルに"chown"を行
919 うことを許しているものがある。これは別のユーザが悪意に満ちたvimrcを作成し、所
920 有者を貴方にすることを可能にしている。注意されたし!
921 タグサーチコマンドを使う時には、実行されるサーチコマンド(タグファイル
922 の各行の最後の部分)は常に安全なモードで行われる。これは現在のディレクトリにあ
923 るvimrc/exrcからコマンドが実行されるのと、ちょうど同じように働く。
926 Vimの起動に時間がかかる場合、幾つかの理由が考えられる:
927 - UnixでGUIやX11を有効にしている場合(":version"の出力で"+GUI"と"+X11"をチェッ
928 ク)、共有ライブラリをロードしX11サーバに接続する必要がある。GUIとX11を無効に
929 してコンパイルしたバージョンを試して欲しい。これにより実行ファイルが小さくも
931 CUI端末でVimを起動するときの引数に|-X|を指定するとXサーバと接続しないように
933 - "viminfo"を使用している場合、viminfoファイルを読み込むのに少し時間がかか
934 る。viminfoが原因ならば一時的にviminfoを無効にすることによって確認することが
935 できる(Vimを引数"-i NONE"で起動する。|-i|)。":set viminfo='20,<50,s10"と設定
936 して、レジスタに保存される行数を減らしてみるのも良い。
940 ファイル名を与えずにVimを起動した場合、(Vimのことを知らない人に向けて)紹介メッ
941 セージが表示される。そのメッセージはなんらかの操作によって画面が再描画されると
942 すぐに消される。もう一度メッセージをみるには、":intro"コマンドを使用する(表示
943 するスペースがなければ一部だけが表示される)。起動時に紹介メッセージを表示しな
944 いようにするには'shortmess'に'I'フラグを追加する。
947 起動引数に|--help|や|--version|を指定するとVimはメッセージを出力して終了する。
948 通常はそのメッセージは標準出力に送られるので、リダイレクトしてファイルに書き込
957 gvimは標準出力と標準エラー出力が端末に繋がってないときに、自身がデスクトップか
958 ら起動され、メッセージを出力する端末がないものと判断する。このせいで上記の
959 ":read"コマンドを使用した例は使えない。使用できるようにするには'shellredir'を
960 標準設定の">&"から">"へ変更する: >
965 しかしこのようにしてもgvimが標準出力を使用しないようなシステムでは機能しない。
967 ==============================================================================
968 5. $VIM と $VIMRUNTIME
970 環境変数の"$VIM"は、設定ファイル".vimrc"のような、Vimが使用するさまざまなファ
971 イルの置き場所を見つけるために利用される。"$VIM"の値はシステムに依存する。
974 全てのユーザが環境変数$VIMを設定しなくてすむように、Vimは次の順番で$VIMの値を
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")、のどれかならそれも取り除
984 3. MSDOS、Win32、OS/2、ではVimの実行可能ファイルがあるディレクトリを使用する。
985 ディレクトリ名の最後が"/src"ならそれは取り除かれる。配布されているVim一式
986 の.zipファイルをあるディレクトリに展開し、検索パスを調整して使っているよう
987 なら便利である。ディレクトリ名の最後が"runtime"か"vim{version}"(例えば
989 4. Unixではコンパイル時に指定したインストール先のディレクトリを使用する
990 (":version"の出力を見て確認できる)。
992 このうちのどれかが使用できるならVimは環境変数$VIMを設定する。あとからその値を
993 変更するには":let"コマンドを次のように使う: >
994 :let $VIM = "/home/paul/vim/"
997 環境変数の"$VIMRUNTIME"は、ヘルプファイルや構文強調表示の定義ファイルのよう
998 な、Vimが使用するさまざまな支援ファイルの置き場所を見つけるために使用される。
999 例えば、主要なヘルプファイルは通常は"$VIMRUNTIME/doc/help.txt"である。
1000 普通はユーザが自分で$VIMRUNTIMEを設定せずに、Vimに設定させる。Vimは次の順番で
1002 1. 環境変数$VIMRUNTIMEが設定されていればそれを使う。ランタイムファイルを特殊な
1004 2. "$VIM/vim{version}"ディレクトリがあればそれを使う。{version}はVimのバージョ
1005 ン番号から'-'や'.'を除いた物である。例えば"$VIM/vim54"。これは$VIMRUNTIMEと
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"にある
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 ==============================================================================
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をフォアグラウン
1047 GUIモードでは、サスペンドはgvimのアイコン化として実装されている。Windows 95/NT
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 て、作成したファイルをそのまま、もしくは一部分だけをコピーして使用することがで
1070 :mk[exrc] [file] 現在のキーマッピングと変更されているオプションを
1071 [file]に保存する( [file]を省略するとカレントディレクト
1072 リの".exrc"に保存される)。 [file]がすでにあるときには
1075 :mk[exrc]! [file] 現在のキーマッピングと変更されているオプションを
1076 [file]に保存する( [file]を省略するとカレントディレクト
1077 リの".exrc"に保存される)。 [file]がすでにあるときには
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 グローバルなマッピングだけが保存される。バッファローカルなマッピングは保存され
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|も、同じ方法を
1111 *vimrc-option-example*
1112 vimrcにオプションの設定を1つだけ加えるには次のようにする:
1113 1. Vimでvimrcファイルを開く。
1114 2. 期待どおりになるようにオプションを設定する。例えば、'guifont'を設定していろ
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|で簡単に紹介されている。
1133 ビューとは、あるウィンドウに適用された設定の集合である。ビューを保存しておい
1134 て、あとからそれを復元することで、開いていたテキストをまた同じように表示するこ
1135 とができる。ウィンドウに関連したオプションやマッピングも復元されるので、ビュー
1136 を保存したときと同じ状態で作業を再開することができる。
1138 *Session* *session-file*
1139 セッションとは、全てのウィンドウのビューとグローバルな設定のことである。セッ
1140 ションを保存しておいて、あとからそれを復元することで、各ウィンドウのレイアウト
1141 を元に戻すことができる。セッションを利用してすばやくプロジェクト(作業単位)を切
1142 り替えることが可能で、そのプロジェクトで開いていたファイルを自動的に開くことが
1145 ビューとセッションはviminfoファイルを拡張した便利な機能である。ビューとセッ
1146 ションをviminfoファイル(|viminfo-file|)と併用することで全ての情報を記録するこ
1149 保存しておいたビューやセッションを素早く再開するには引数|-S|を使う: >
1152 これら全ては {Vi にはない} 機能である。{|+mksession|が有効な場合のみ利用可能}
1155 :mks[ession][!] [file] 現在のセッションを復元するためのVimスクリプトを作成す
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ウィンドウの位置を復元す
1173 6. 'sessionoptions'に"resize"が含まれているときは、スクリーンのサイズを復元す
1175 7. 'sessionoptions'に"buffers"が含まれているときは、バッファリストと各バッファ
1176 におけるカーソルの位置を復元する。隠れ(hidden)バッファや開放済み(unloaded)
1177 バッファも含めて、全てのバッファを復元する。"buffers"が含まれていないとき
1178 は、ウィンドウに表示されているバッファのみが復元される。
1179 8. 全てのウィンドウとそのレイアウトを復元する。'sessionoptions'に"help"が含ま
1180 れているときは、ヘルプウィンドウも復元する。'sessionoptions'に"blank"が含ま
1181 れているときは、無名のバッファを編集していたウィンドウも復元する。
1182 'sessionoptions'に"winsize"が含まれていて、ヘルプウィンドウや無名バッファの
1183 ウィンドウが除外されていないときは、ウィンドウのサイズも復元する(スクリーン
1184 サイズに比例する)。"winsize"が含まれていないときは、ウィンドウは妥当なサイ
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 使って現在のセッションの名前(フルパス)を利用できる。
1196 :nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/
1197 これは現在のセッションを保存してから、別のセッションを開こうとするものである。
1199 'sessionoptions' から "tabpages" が除かれていない限り、セッションはすべてのタ
1202 セッションファイルが読み込まれると、自動コマンドイベント |SessionLoadPost| が
1204 *SessionLoad-variable*
1205 セッションファイルを読み込んでいる間、グローバル変数 SessionLoad は 1 になる。
1206 プラグインはこれを使ってイベント SessionLoadPost が発生するまで、なんらかの作
1210 :mkvie[w][!] [file] 現在のウィンドウの状態を復元するためのVimスクリプトを
1212 [!]を付けたときはファイルを上書保存する。
1213 [file]を省略したり、1から9の数字を指定したときは、
1214 'viewdir'に指定したディレクトリに適切な名前で保存され
1215 る。'viewdir'に指定したディレクトリがないときには、そ
1217 [file]を省略、もしくは数字を指定した場合は、常に上書き
1218 保存される。そして、ビューを復元するときには
1220 [file]にファイル名を指定すると、編集を再開するためのコ
1221 マンドがそのファイルに保存される(この場合は'viewdir'は
1224 ":mkview"の出力は次の項目を含んでいる:
1225 1. ウィンドウで使用している引数リストの復元する。グローバルな引数リスト使って
1228 2. ウィンドウで編集していたファイルを開く。編集していたファイルがなければ、空
1230 3. 'viewoptions'が"localoptions"を含んでいるときは、そのバッファやウィンドウに
1231 特有な(ローカルな)、マッピング、短縮(abbreviations)、オプション、を復元す
1232 る。セッションの一部としてビューを保存するときに、'sessionoptions'に
1233 "options"が含まれているときは、オプションのグローバルな値とローカルな値が両
1235 4. 'viewoptions'が"folds"を含んでいるときは、手作業で設定した折畳みを復元す
1237 5. ファイルにおけるカーソルとスクロールの位置を復元する。閉じた折畳みがあると
1239 6. ローカルなカレントディレクトリを復元する。グローバルなカレントディレクトリ
1241 訳注: |current-directory|
1243 Note: ビューとセッションは完璧ではない:
1244 - 全てを復元するわけではない。例えば、関数、オートコマンド、":syntax on"、など
1245 は含まれない。レジスタやコマンドラインの履歴などは、ビューやセッションではな
1247 - グローバルなオプションの設定は、その値を初期設定から変更していた場合のみ保存
1248 される。現在の設定が初期設定とは違うときにセッションを復元しても、初期設定に
1249 は戻らない。しかしながら、ローカルなオプションは初期設定に戻される。
1250 - 既存のマッピングは警告なく上書きされる。そのようなときはよく分からないエラー
1252 - 手動で設定した折畳みや、その開閉状態を復元すると表示が乱れることがある。それ
1253 はビューを保存してから復元する間に、編集していたファイルを変更した場合であ
1255 - Vimスクリプトはまったくもって効率的ではない。しかしそうは言っても、自分でコ
1259 :lo[adview] [nr] 編集中のファイルに関連したビューを読み込む。 [nr]を省
1260 略すると、":mkview"で保存したビューが読み込まれる。
1261 [nr]を付けた場合は、":mkview [nr]"で保存したビューが読
1264 ":mkview"と":loadview"の組は、1つのファイルに対して全部で10コのビューを管理で
1265 きる。ビューは'viewdir'で指定したディレクトリに保存される。ビューはファイル名
1266 を利用して管理されている。そのため、ファイルの名前を変更したり、(シンボリック)
1267 リンクファイルを使ってアクセスした場合は、対応するビューを見つけることができな
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ファイルにはこんなものを記憶できる:
1293 - 最後の検索/置換パターン('n'と'&'のため)
1297 コンパイル時に|+viminfo|機能が無効にされていたら、viminfoファイルはサポートさ
1300 セッションファイルも使用することができる。viminfoファイルは「している仕事」に
1301 依存しない、という点で異なる。通常viminfoファイルは一つしか存在しない。セッ
1302 ションファイルは、ある特定の編集作業の状態を保存するのに使う。セッションファイ
1303 ルは、作業しているプロジェクト毎に複数作成することが可能である。Viminfoもセッ
1304 ションファイルどちらも、Vimをスタートしてすぐに好みの設定を行うという目的のた
1305 めに、効果的に使用できる。 |session-file|
1308 Vimが起動した時に'viminfo'オプションが空でなかったら、viminfoファイルが読み込
1309 まれ、その情報は適切に使用される。起動時にはマークは読み込まれない(しかしファ
1310 イルマークは読み込まれる)。起動時に'viminfo'オプションをどうやって設定するのか
1311 は|initialization|を参照。
1314 Vimが終了する時に'viminfo'が空でなかったら、情報がviminfoファイルに保存される
1315 (もし既に存在した場合には、それと混合(マージ)される)。'viminfo'オプションは、
1316 どのような情報を保存するか、またどのくらいの量を保存するべきかその限界を指定す
1317 る為の情報を含む文字列である。('viminfo'参照)。
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:"を使う
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 後直ちにそれを行うには、次のコマンドを試す: >
1354 シェルではエイリアスをこんな風に使用して: >
1356 alias lvim vim -c '"'normal "'"0'"'
1358 特定のファイルのマークを保存しないようにするには'viminfo'に"r"フラグを追加す
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ファイルは使用(読み
1373 - 起動後に、コマンドで別の名前を与えると、デフォルト名や'viminfo'や"-i"で与え
1374 た名前を上書きすることができる("-i"はNONEが指定されていない時に限る)。
1376 文字エンコーディング *viminfo-encoding*
1378 viminfoファイルのテキストはオプション'encoding'で指定したエンコーディングで保
1379 存される。通常は'encoding'の設定はいつも同じなので、問題なく機能する。しかしな
1380 がら、もしもviminfoファイルを読み込むときに、'encoding'の設定がviminfoファイル
1381 を保存したときとは違うエンコーディングに設定されていると、いくつかのテキスト
1382 (ASCII以外の文字)は不正な文字になってしまう。それを回避するには、オプション
1383 'viminfo'に'c'フラグを追加する: >
1385 そうするとVimは、viminfoファイルを保存したときの'encoding'から現在の'encoding'
1386 へとテキストを変換する。これを利用するには|+iconv|が有効になっている必要があ
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ファイルに
1405 :rviminfo! ~/.my_viminfo
1406 その情報を読み込むことができる。ファイルの種類によって(Cコードだとかvimスクリ
1407 プトだとか)、異なるviminfoを持ち、":autocmd"を組み合わせることでファイル名に基
1408 づいたりしながら、それらを使用することもできる(|:autocmd|)参照。
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個のファイルのマークが書き出
1434 "E138: Can't write viminfo file"("E138: viminfoファイ
1435 ルを保存できません")というエラーが出たときには古い一時
1436 ファイル(例えば~/.viminf*)が残っていないことを確か
1437 め、.viminfoファイルを保存するディレクトリの書込み権限
1441 vim:tw=78:ts=8:ft=help:norl: