Up: 目次   [Index]


Vim の起動、起動引數や初期化に關して

*starting.txt*  For Vim バージョン 8.1.  Last change: 2019 Jul 30


		  VIMリファレンスマニュアル    by Bram Moolenaar

Vim の起動

1. Vim の起動引數|vim-arguments|
2. Amiga 版の Vim|starting-amiga|
3. eVim について|evim-keys|
4. 初期化|initialization|
5. $VIM と $VIMRUNTIME|$VIM|
6. サスペンド|suspend|
7. 終了|exiting|
8. 設定の保存|save-settings|
9. ビューとセッション|views-sessions|
10. viminfo ファイル|viminfo-file|

1. Vim の起動引數

たいていは 1 つのファイルを編輯するために次のやうなコマンドで Vim を起動します

vim filename

より一般的に言へば、Vim は次の書式で起動することができます:

vim [option | filename] ..

オプション引數とファイル引數は混在させ、幾つでも與へる事ができます。しかし引數を取るオプションには注意が必要です。

さまざまな Vi のバージョンとの互換性に付いては |cmdline-arguments| を參照してください。

正確には、以下の 5 つの項目から 1 つを選んで編輯が開始されます:

filename

1 つ以上のファイル名が與へられた場合。まづは最初の 1 つが編輯ファイルとしてバッファに讀み込まれます。カーソルはそのバッファの 1 行目に置かれます。

’-’ で始まるファイル名を指定するには、オプションと區別するために、引數に "‘--’" を置きます。例:

vim -- -filename

"‘--’" の後の全ての引數はファイル名として解釋されるので、その他のオプションや引數 "+command" は使用することができません。

MS-Windows におけるクォートの動作については |win32-quotes| を參照してください。

-

この引數は Ex モードで起動するかどうかで意味が異なります。

ノーマルモードで起動する場合:

vim -
ex -v -

標準入力から讀み込まれたテキストの新規バッファの編輯を始めます。通常は標準入力から讀み込まれたであらうコマンドは、現在、標準エラー出力から讀み込まれるでせう。例:

find . -name "*.c" -print | vim -

{譯注: 以下の文はすべて "view -" に對する說明と思はれる。}

簡單に終了できるやうに、バッファに「變更(modified)」のマークは付けらません。バッファの內容を思ひがけず失ひたくない場合は、變更とマークするやう氣を付けてください。例:

ls | view -

Ex モードで起動する場合:

ex -
vim -e -
exim -
vim -E -

サイレントモードで起動します。|-s-ex| を參照してください。

-t {tag}

タグで開きます。{tag} は tags ファイルから檢索され、關聯づけられたファイルが現在のファイルとなり、關聯づけられたコマンドが實行されます。大抵これは C プログラムを編輯するときに使用され、この場合 {tag} は函數名である事が多い。それにより、その函數を含んでゐるファイルが現在のファイルとなり、カーソルがその函數の先頭に置かれます (|tags| を參照してください)。

-q [errorfile]

quickfix モードで開きます。[errorfile] に指定したファイルが讀み込まれ、最初のエラーが表示されます。|quickfix| を參照してください。

[errorfile] が與へられない場合、オプション ’errorfile’ がファイル名として使用されます。省略値に關しては ’errorfile’ を參照してください。

(nothing)

上記の 4 つのうち、どれも指定せずに Vim を起動すると、新しいバッファが用意されます。これは名前のない空のバッファです。

起動時のモードはプログラム名を "vim" とは別の名前にすることで指定できます。それは次のやうにオプションを與へたのと同じです:

exvim -eEx モードで起動 (|Ex-mode| を參照してください)。
eximvim -E改良版 Ex モードで起動 (|Ex-mode| を參照してください)。(通常はインストールされません)
viewvim -R讀み込み專用モードで起動 (|-R| を參照してください)。
gvimvim -gGUI で起動 (|gui| を參照してください)。
gexvim -egGUI の Ex モードで起動。
gviewvim -RgGUI の讀み込み專用モードで起動。
rvimvim -Z"vim" の制限モードで起動 (|-Z| を參照してください)。
rviewvim -RZ"view" の制限モード。
rgvimvim -gZ"gvim" の制限モード。
rgviewvim -RgZ"gview" の制限モード。
evimvim -y簡易操作の Vim (|-y| を參照してください)
eviewvim -yR"evim" と同じ。讀み込み專用モード。
vimdiffvim -d差分モードで起動 |diff-mode|
gvimdiffvim -gd差分モードで起動 |diff-mode|

これらの別名の後ろに付けられる文字は無視されます。たとへば GUI で起動するのに "gvim-5" といふ名前を付けることができます。もちろんその名前で實行可能なファイルがなければなりません。

UNIX では通常、Vim といふ名前の實行可能ファイルが 1 つあり、それに對して違ふ名前のリンクが用意されます。使用してゐるシステムがリンクをサポートせず、實行ファイルのコピーを幾つも作りたくないのであれば、リンクの代はりにエイリアスを使ふことができます。例:

alias view   vim -R
alias gvim   vim -g

オプション引數はどんな順番で與へても良い。1 文字のオプションは 1 つのダッシュ (-) の後に組み合はせます。引數 "--" の後にはオプション引數を置くことはできません。

VMS では全てのオプション引數は小文字であるとみなされます。大文字を指定するにはスラッシュを前に置きます。つまり "-R" でリカバリモード、"-/R" で讀み込み專用となります。

--help
-?
-h

使用法( ヘルプ) を表示して終了します。

そのテキストを保存するには |info-message| を參照してください。

--version

バージョン情報を表示して終了します。出力は |:version| コマンドと一緖です。

そのテキストを保存するには |info-message| を參照してください。

--noplugin

プラグインを讀み込みません。’loadplugins’ オプションをオフにします。

Note:
|-u| 引數でもプラグインを讀み込まないやうにできることに注意してください:

引數vimrcファイルプラグインdefaults.vim
なしyesyesyes
-u NONEnonono
-u DEFAULTSnonoyes
-u NORCnoyesno
–nopluginyesnoyes
--startuptime {fname}

起動處理の閒、經過時閒のメッセージをファイル {fname} に書き出します。.vimrc やプラグインの讀み込み、最初のファイルの讀み込みにおいて、どこで時閒がかかつてゐるかを調べるために役に立ちます。

{fname} が既に存在するときはそのファイルに追記されます。

{|+startuptime| 付きでコンパイルされたときのみ有效}

--literal

ファイル名を文字どほりに解釋します。ワイルドカードを展開しません。Vim は常にファイル名を文字どほりに解釋する (シェルがワイルドカードを展開する) ので、Unix では必要ありません。

全てのファイル名に適用されます。この引數の前に指定したものも同じです。

+[num]

最初に編輯されるファイルの "num" 行目にカーソルを置いて開きます。"num" がなかつた場合には、カーソルは最終行に置かれます。

+/{pat}

最初に編輯されるファイルの、"pat" を含む最初の行にカーソルを置いて起動します (指定可能な檢索パターンについては |pattern| を參照してください)。檢索はカーソル位置から開始されます。カーソルの位置は最初の行か、もしくは |viminfo| から復元された最後に使はれた位置の場合もあります。必ず最初の行から檢索したい場合は "+1 +/pat" を使ひます。

+{command}
-c {command}

最初のファイルが讀み込まれた後 (加へてそのファイルに適用される autocommand と modeline が處理された後) に {command} が實行されます。"command" は Ex コマンドとして解釋されます。"command" にスペースを含んでゐる場合には、ダブルクォートで挾まれてゐる必要があります (これは使はれてゐるシェルに依存します)。例:

vim  "+set si"  main.c
vim "+find stdio.h"
vim  -c "set ff=dos"  -c wq  mine.mak

Note:
Vim コマンドの引數として "+" か "-c" をあはせ、最大 10 個まで使ふことができることに注意してください。これらの引數は與へられた順番で實行されます。"-S" 引數は "-c" として同じやうに數へます。

--cmd {command}

vimrc ファイルを處理する前に {command} を實行します。それ以外は -c {command} と同じです。"-c" 引數とは別に 10 個まで使ふことができます。

-S {file}

最初のファイルが讀み込まれた後に {file} を實行します。これは次のものを簡單にしたものです:

-c "source {file}"

"-c" と混ぜて使ふことができ、複數指定することができます。"-c" と合はせて 10 個まで指定することができます。{file} の先頭文字には "-" は使へません。

作業をして Vim を終了するスクリプトを實行するのには使はないでください、エラーメッセージが見えないでせう。代はりに |-u| を使つてください。

-S

"-S Session.vim" と同じ。最後の引數として使はれたときや、その後に他のオプション引數が續いたときのみこのやうに解釋されます。

-r

リカバリモード。ファイル名の引數なしで實行した場合には、存在するスワップファイルのリストが表示されます。ファイルを指定すると、クラッシュしたセッションを復活させるために、スワップファイルが讀み込まれます。|crash-recovery| を參照してください。

-L

-r と同じ。

-R

讀み込み專用モード。オプション ’readonly’ が、編輯される全てのファイルに設定されます。これにより、まだバッファを編輯することはできるけれども、偶然にファイルを上書きしてしまふやうなことを防ぐことができます。もしも、讀み込み專用モードにゐることを忘れてバッファへ變更を行つたとしても、":w!" のやうに Ex コマンドに「ビックリマーク」を付けることで上書きすることが可能です。

readonly’ オプションは ":set noro" としてオフに設定することが可能です (オプションを說明した章 |options| を參照してください)。その後の編輯は讀み込み專用モードではなくなります。實行ファイルを "view" として起動した場合は、この -R 引數と同じ動作になります。オプション ’updatecount’ は 10000 に設定され、これはスワップファイルがさう頻繁には自動更新されなくなるといふことです。

變更を不許可とするには |-M| を參照してください。

-m

變更を保存できなくします。オプション ’write’ がオフに設定され、ファイルを保存することができなくなります。オプション ’write’ をオンにすれば、再び保存することが可能になります。

-M

變更できないやうにします。オプション ’modifiable’ がオフに設定され、變更を加へることができなくなります。さらに、オプション ’write’ がオフに設定され、ファイルを保存することができなくなります。’modifiable’ と ’write’ をオンにすれば、變更を加へて保存できるやうになります。

-Z

制限モード。外部シェルを實行するあらゆるコマンドの使用を許可しません。これにはサスペンドである CTRL-Z や、":sh"、フィルタリング、system() 函數、バッククォートの評價、libcall() が含まれます。

delete(), rename(), mkdir(), job_start() なども許可されてゐません。

Python, Ruby, Lua などのインターフェイスも、シェルコマンドの實行に使用される可能性があるため無效になつてゐます。PerlはSafe モジュールを使用してゐます。

Note:
ユーザーはまだシェルコマンドを實行する拔け穴を見つけるかもしれないことに注意してください。それが困難になつただけなのです。

-g

Vim を GUI モードで起動します。|gui| を參照してください。逆は |-v| を參照してください。

-v

Ex を Vi モードで起動します。實行ファイルが "ex" や "gvim" である時にだけ、違ひが現れます。gvim では可能ならは "GUI" ではないモードで起動します。

-e

Vim を Ex モードで起動します |Q|。實行ファイルの名前が "ex" 以外の時に意味があります。

-E

Vim を改良版 Ex モードで起動します |gQ|。實行ファイルの名前が "exim" 以外の時に意味があります。

-s

サイレント (もしくはバッチ) モード。Vim が "ex" で起動されるか、このオプションよりも先に "-e" が付いてゐた場合にだけ働きます。さうでない場合には |-s| を參照してください。|-s| として使ふときには引數をとります。 端末の替はりにファイルから Ex コマンドを實行する場合に使用されます。ほとんどのプロンプトとメッセージは抑制されます。警告とエラーのメッセージも抑制されます。次のコマンドの出力は標準出力へ表示されます:

:print
:list
:number
:set      オプション値を表示するため。

verbose’ が 0 以外のときにはメッセージは抑制されずに標準エラー出力へ表示されます (デバッグ用)。’term’ と $TERM は考慮されません。Vim が停止してゐるやうだつたら "qa!<Enter>" と入力してみてください。

Vim がユーザーの入力を待つてゐるときでもプロンプトは表示されません。

初期化處理はスキップされます (このオプションが引數 "-u" と一緖に使はれた場合は除きます)。

例:

vim -e -s < thefilter  thefile

逆に、スクリプトからのエラーを見るには |-u| フラグを付けファイルを實行します:

vim -u thefilter thefile
-b

バイナリモード。ファイルを入出力する再に <NL> だけを行のセパレータとして認識するやうになります。オプション ’expandtab’ は無效化されます。オプション ’textwidth’ は 0 に設定されます。’modeline’ はオフに設定されます。オプション ’binary’ がオンに設定されます。これは vimrc/exrc のファイルが讀み込まれた直後、引數で與へられたファイルが讀み込まれるよりも前に行はれます。|edit-binary| も參照してください。

-l

Lisp モード。オプション ’lisp’ と ’showmatch’ をオンに設定します。

-A

アラビア語モード。オプション ’arabic’ をオンに設定します。|+arabic| (これは |+rightleft| も含んでゐる) が有效なときにだけ使用できます。さうでないときには Vim はエラーメッセージを出力して終了します。

-F

これは Farsi (ペルシア語モード) で使用されてゐましたが削除されました。|farsi.txt| を參照してください。

-H

Hebrew (ヘブライ語)モード。オプション ’hkmap’ と ’rightleft’ をオンに設定します。

{|+rightleft| を有效にしてコンパイルした時にだけ使用することができます。さうでない場合 Vim はエラーメッセージを表示して終了します}

-V[N]

詳細表示をします。オプション ’verbose’ を [N] に設定します (N を省略した場合は 10 が設定されます)。":source" が實行される度、viminfo の讀み書きを行ふ度に情報が表示されます。Vim の起動時と終了時の動作を調べるときに便利です。

例:

vim -V8 foobar
-V[N]{filename}

-V と同樣で、さらに ’verbosefile’ を {filename} に設定します。その結果、メッセージは表示されずにファイル {filename} に書き出されます。{filename} は數字で始まつてはなりません。

例:

vim -V20vimlog foobar
-D

デバッグします。スクリプトの最初のコマンドを實行するところからデバッグを開始します。|debug-mode|

{|+eval| が有效な場合のみ利用可能}

-C

互換モード。オプション ’compatible’ をオンに設定します。.vimrc ファイルが存在する場合にも Vi との互換性を得ることができます。プラグインや起動時スクリプトで ":set nocompatible" とすると、このオプションより優先されるため、起動後には ’nocompatible’ になつてしまふでせう。どこで最後に設定されたかを調べるには次のコマンドを使ひます:

:verbose set compatible?

compatible’ がオンになつてゐると動かないプラグインもあります。起動處理の後でこれをセットするにはこのやうにします:

vim "+set cp" filename

|compatible-default| も參照してください。

-N

非互換モード。オプション ’compatible’ をオフに設定します。.vimrc ファイルがないときや、"-u NONE" としてゐるときに、’nocompatible’ (Vim の擴張を有效) にすることができます。|compatible-default| も參照してください。

-y

簡易モード。|evim| や |eview| と同じ。’insertmode’ をオンに設定して起動し、モードレスエディタのやうに振舞ひます。このスイッチを指定すると、$VIMRUNTIME/evim.vim が自動的に讀み込まれ、一般的なエディタと同じ操作ができるやうなマッピングが設定されます。

|evim-keys| を參照してください。利用可能なら GUI が使用されます。

-n

スワップファイルを使用しません。クラッシュしたときに編輯していたファイルを復舊することはできなくなります。フロッピーディスクのやうな非常に低速なメディアのファイルを讀んだり編輯したいときに有用です。

":set updatecount=0" と設定するのと同じです。オプション ’updatecount’ に 0 より大きい値を設定することで、スワップファイルの使用を有效にすることができます。例へば、":set uc=100"。

Note:
-n と -b を合はせて -nb としないやうに注意してください。-nb には別の意味があります: |-nb|。

vimrc ファイルの實行解釋の直後で、GUI が初期化される前に ’updatecount’ が 0 に設定されます。よつて vimrc ファイルの中で ’updatecount’ を設定しても上書きされてしまひますが、gvimrc での設定は上書きされません。|startup| を參照してください。

ディスクへのアクセスを減らしたいのならば (ノート PC を使用してゐる場合など)、"-n" を使用する替はりに、’updatetime’ を設定し、’updatecount’ に非常に大きい値を設定して、編輯中のファイルを保存する時に ":preserve" を利用すると良いでせう。この方法だとクラッシュからの復舊の可能性を保てます。

-o[N]

N 個のウィンドウを水平分割して開きます。[N] が與へられない場合には、引數で指定された全てのファイルに對して 1 個のウィンドウが開かれます。畫面に十分な廣さがない場合には、始めのはうの數個のファイルだけがウィンドウを伴つて表示されます。逆にファイルの數よりもウィンドウの數が多く指定された場合、多い分のウィンドウは空ファイルの編輯用として開かれます。

-O[N]

N 個のウィンドウを垂直分割して開きます。それ以外は |-o| と同じ。-o と -O が兩方指定されたときは最後に指定された方を使用します。

-p[N]

N 個のタブページを開きます。[N] が省略されると、引數として與へられた各ファイルに對し 1 つずつタブページを開きます。最大値は ’tabpagemax’ ページ (既定値は 10) です。引數よりも多くのタブページが作られる場合は、最後の數個のタブページは空ファイルを開きます。|tabpage| も參照してください。

-T {terminal}

端末の種類を "terminal" に設定します。これは Vim がユーザーの端末へ送るコードに影響を與へます。Vim はユーザーが使用してゐる端末の種類を自分で判斷することができるので、通常これは必要がありません。(|terminal-info| を參照してください。)

--not-a-term

入力と出力 (もしくはどちらか一方) が端末に接續されてゐないと、ユーザーが知つてゐることを Vim に傳へます。これにより警告が表示され 2 秒閒の遲延が發生するのを避けられます。

"Reading from stdin..." のメッセージを避けることもできます。

"N files to edit" のメッセージを避けることもできます。

--ttyfail

標準入力か標準出力が端末 (tty) でない場合、すぐに終了します。

-d

差分モードで起動します。|vimdiff| と同じ。

{|+diff| が有效な場合のみ利用可能}

-d {device}

{device} Amiga 專用機能。|+diff| が無效な場合のみ利用可能。|-dev| と同じやうに機能します。

-dev {device}

Amiga 專用機能: {device} が編輯用に開かれます。普通、ウィンドウの位置とサイズを設定するために "-d con:x/y/width/height" の形式で指定します。例へば "-d con:30/10/600/150"。しかしその他の AUX: のやうなデバイスの編輯を開始することにも使用できます。

-f

GUI: Vim を起動したプログラム (プロセス) から獨立しません。’f’ は "foreground" を意味します。省略すると、GUI 版の Vim は新しいプロセスへ fork して、現在のプロセスは終了してしまひます。gvim の編輯セッションが終はるのを待つプログラム (メールソフトやニュースリーダーなど) には、"-f" を使ふべきでせう。gvim が fork しないやうにするには、自分の .gvimrc の中で ’guioptions’ に ’f’ を加へてください。

Careful:
"-gf" で GUI をフォアグラウンドで實行開始できますが、"-fg" だと前景色の設定になつてしまひます。|gui-fork| を參照してください。

Amiga: Vim を新しいウィンドウで起動しません。編輯作業が終はるのを待つプログラム (メールソフトやニュースリーダー) によつて Vim が起動される時に、このオプションは使用されます。|amiga-window| を參照してください。

MS-Windows: このオプションはサポートされません。vim.bat や gvim.bat 經由で起動した場合は機能します。

--nofork

GUI: fork しません。|-f| と同じ。

-u {vimrc}

初期化のためにファイル {vimrc} が讀込まれます。その他の初期化はスキップされます。|initialization| を參照してください。

これにより特殊なマッピングや設定をした、特殊なモードで Vim を起動することができます。これを簡單に使用するにはシェルのエイリアスが使へるでせう。例:

alias vimc vim -u ~/.c_vimrc !*

autocommand を使ふことも考慮すべきである。|autocommand| を參照。

{vimrc} に "NONE" (全て大文字) が指定された時には、設定ファイルや環境變數による初期化、.gvimrc による GUI の初期化も含め、全て省略されます。プラグインも讀み込まれません。

{vimrc} が "NORC" (全部大文字) のときは "NONE" と同じやうに處理されますが、プラグインは讀み込まれます。

{vimrc} が "DEFAULTS" (全部大文字) のときは "NONE" と同じやうに處理されますが、|defaults.vim| スクリプトが讀み込まれます。また、’nocompatible’ が設定されます。|--clean| も參照してください。

"DEFAULTS" 以外の引數と共に "-u" 引數を使用すると、副作用としてオプション ’compatible’ がデフォルトでオンに設定されます。これは豫期せぬ動作を引き起こすかもしれません。|'compatible'| を參照してください。

-U {gvimrc}

GUI がスタートする時にファイル {gvimrc} が讀込まれます。その他の GUI 初期化はスキップされます。{gvimrc} に NONE が指定された場合、初期化ファイルは何も讀込まれません。|gui-init|

例外: システムのメニューファイルは常に讀込まれます。

-i {viminfo}

デフォルトの viminfo の代はりにファイル {viminfo} を使用します。"NONE" (全て大文字)が指定された場合には、’viminfo’ が指定されたり、":rv" や ":wv" が使はれても、viminfo は讀み書きともに使用されません。|viminfo-file| を參照してください。

--clean

"-u DEFAULTS -U NONE -i NONE" と同樣:

-x

ファイルの讀み書き時に暗號化を施します。暗號の鍵としてオプション ’key’ に設定された値を使用します。全ての書き込みは、テキストに對して鍵を使つて暗號化を行つてからなされます。ファイルを讀込む時には、Vim は暗號化ファイルかチェックし、自動的に鍵を聞いてくるので、引數 ’-x’ は必要ではありません。|encryption|

-X

X サーバーと通信しません。さうして、カレントウィンドウのタイトルを取得したり、X のクリップボードを使つたコピー/ペーストを使用したりしません。端末エミュレータで Vim を使用するときに X サーバーとの通信速度が遲い場合にそれを囘避できます。

效果があるか確かめるには |--startuptime| を使つてください。

Unix か VMS で |+X11| が有效な場合のみ意味があります。

特定の端末を使用するときだけ通信を無效にするには、オプション ’clipboard’ を參照してください。

X11 Session Management Protocol (XSMP) の處理が組み込まれてゐる場合、その通信にも大きな延滯が生じるため、無效にします。

(例へばクライアントとサーバーが通信するため) あとから X サーバーとの通信をつなげるには |serverlist()| 函數を呼び出します。ただし XSMP の處理は有效にはなりません。

-s {scriptin}

スクリプトファイル {scriptin} が讀込まれます。ファイルの中のキャラクタは、全てユーザーがタイプしたものとして解釋されます。エディタが終了する前にファイルの終端に達した場合、以降のキャラクタはキーボードから讀込まれます。Ex モード動作時には働きません、|-s-ex| を參照してください。|complex-repeat| も參照してください。

-w {number}
-w{number}

オプション ’window’ を {number} に設定します。

-w {scriptout}

Vim を終了するまで、ユーザーが入力した全部の文字が記錄され、ファイル {scriptout} に書き出されます。これは "vim -s" や ":source!" で讀込まれるスクリプトファイルを作成するのに役立ちます。既にファイル "scriptout" が存在する場合には、そのファイルに追加保存します。|complex-repeat| も參照してください。

{scriptout} は數字で始まつてはいけません。

-W {scriptout}

-w と似てゐますが、アペンド (追加) せずに、既にあるファイルを上書きします。

--remote [+{cmd}] {file} ...

サーバーとして機能してゐる他の Vim で {file} を開きます。この引數の前にファイルを指定することはできません。|--remote| を參照してください。

--remote-silent [+{cmd}] {file} ...

--remote と同じ。ただしサーバーがなくてもメッセージを出しません。|--remote-silent| を參照してください。

--remote-wait [+{cmd}] {file} ...

--remote と同じ。ただしサーバーが終了するまで待機します。|--remote-wait| を參照してください。

--remote-wait-silent [+{cmd}] {file} ...

--remote-wait と同じ。ただしサーバーがなくてもメッセージを出しません。|--remote-wait-silent| を參照してください。

--servername {name}

Vim サーバーの名前を指定します。これは通信先のサーバー名、あるいは起動する Vim が使用する名前です。|--servername| を參照してください。

--remote-send {keys}

{keys} を Vim サーバーに送り、終了します。|--remote-send| を參照してください。

--remote-expr {expr}

Vim サーバーで {expr} を評價し、その結果を標準出力に出力します。|--remote-expr| を參照してください。

--serverlist

稼動してゐる Vim サーバーの一覽を出力します。|--serverlist| を參照してください。

--socketid {id}

GTK+ GUI の Vim のみ。GtkPlug を使用し、別アプリケーションのウィンドウで起動するやうにします。詳細は |gui-gtk-socketid| を參照してください。

--windowid {id}

Win32 GUI の Vim のみ。ウィンドウ {id} を親ウィンドウにしようと試みます。成功するとそのウィンドウの內側で起動します。詳しくは |gui-w32-windowid| を參照してください。

--echo-wid

GTK+ GUI の Vim のみ。ウィンドウの ID を標準出力に出力します。この値は gvim を kpart ウィジェットに埋め込むのに使用できます。出力の書式は:

WID: 12345\n
--role {role}

GTK+ 2 GUI のみ。メインウィンドウの役割 (role) を {role} に設定します。ウィンドウの役割はウィンドウマネージャーがウィンドウを識別して、ウィンドウの位置等を復元するのに使はれます。この引數はログイン時にセッションを復元するときに自動的に使用されます。|gui-gnome-session| を參照してください。

-P {parent-title}

Win32 のみ。親になるアプリケーションのタイトルを指定します。可能であれば Vim はその MDI アプリケーションのウィンドウ內で起動します。

{parent-title} が親アプリケーションのウィンドウのタイトルに使はれてゐて、明確に區別できる必要があります。

Note:
まだ簡單に實裝されてゐるだけであることに注意してください。全てのアプリケーションで動くわけではありません。メニューは機能しません。

-nb -nb={fname} -nb:{hostname}:{addr}:{password}

Netbeans と接續し、エディタサーバーになります。2 番目の型は接續情報を格納したファイルを指定します。3 番目の型は Netbeans に接續するためのホスト名、アドレス、パスワードを指定します。|netbeans-run|

{|+netbeans_intg| 機能つきでコンパイルされたときのみ有效; もしさうでなければ、-nb は Vim を終了させるでせう}

實行ファイルの名前が "view" なら、Vim は讀込み專用モードで起動します。"view" から "vim" へハードリンクかシンボリックリンクを作成すると便利でせう。"vim -R" とすることでも讀込み專用モードで起動できます。

實行ファイルの名前が "ex" なら、Vim は Ex モードで起動します。これは ":" コマンドだけしか使へないことを意味してゐます。しかし引數 "-v" が與へられれば、Vim は常にノーマルモードで起動します。

unix 互換のシステムで X11 GUI サポートが有效なら、さらに多くの引數が利用可能です。|gui-resources| を參照してください。

2. Amiga 版の Vim

Vim を Workbench から起動する

Workbench 上でアイコンを 2 度クリックすれば Vim を起動することができます。さうすると空のバッファで起動するでせう。

"Project" アイコンを使用することで、1 つ以上のファイルを開くことができます。アイコンの "Default Tool" には Vim の實行ファイルの完全なパスを設定し、".info" ファイルの名前には、編輯するテキストファイルの名前を設定します。このアイコンを 2 度クリックすると、Vim が起動してそのファイルを (そのファイルがあれば) 開きます。シフトキーを押しながらアイコンをクリックし、最後のファイルを 2 度クリックすることで、複數のファイルを開くことができます。これら全てのアイコンの "Default Tool" は同じでなければなりません。

Workbench からではファイル名以外の引數は、Vim へ與へることができません。

Vim ウィンドウ

Vim は起動された CLI ウィンドウの中で動作します。Vim が "run" や "runback" コマンド、あるいや Workbench から起動された場合には、自分自身でウィンドウを開きます。

技術的詳細:

新しいウィンドウを開くためにちよつとしたトリックを使ひます。Vim は普通の CLI ウィンドウの中で起動されてゐないことを檢出するとすぐに、"t:" にあるスクリプトファイルを作成します。このスクリプトファイルには Vim を起動したのと同じコマンドに加へて "endcli" コマンドが含まれてゐます。このスクリプトファイルは "newcli" コマンドと一緖に實行されます (これが行はれる時には "c:run" と "c:newcli" コマンドが必要です)。

スクリプトファイルはリブートするか、手動で消すまで存在しつづけます。この方法は ":sh" と ":!" コマンドが正しく機能する必要があります。しかし Vim が -f オプション (フォアグラウンドモード) で起動された時には、この方法は使はれません。Vim を -f オプションで起動した時には、その終了を待つからです。

スクリプトのトリックを使ふと、Vim を呼び出したプログラムはその終了を知ることができません。オプション -f はメールプログラムなど編輯のセッションが終はつたことを檢出したい場合に、Vim を起動する方法として使用されます。だからオプション -f が指定された時には、":sh" と ":!" コマンドは使用することができません。

Vim は自動的にウィンドウのサイズを認識して對應します。Amiga DOS 1.3 の元では、表示の更新速度を上げるために、fastfonts のプログラム "FF" の支援を受けて動作します。

3. eVim について

EVim は Vim をモードレスエディタとして實行します。これは Vi らしくない發想ではありますが、Vim の操作方法を覺えられるほどには使用しない人の助けになります。ノーマルモードのコマンドを覺えることで編輯作業がより簡單になるといふことを利用者が感付いてくれれば幸ひです。

Evim では以下のオプションが標準設定から變更されます:

:set nocompatibleVi にはない Vim 獨自の機能を使ひます
:set insertmode常時插入モードを使用します
:set hidden非表示になつたバッファを開放しません
:set backupバックアップファイルを消しません (VMS 以外)
:set backspace=2どこでもバックスペースを使用できるやうにします
:set autoindent新しい行を入力するときに自動的にインデントします
:set history=50Ex コマンドの使用履歷を 50 回前まで記錄します
:set rulerカーソルの位置を表示します
:set incsearch檢索時、入力途中にマッチ箇所を表示します
:set mouse=a全てのモードでマウスを使ひます
:set hlsearch檢索した文字を强調表示します
:set whichwrap+=<,>,[,]<Left><Right> を使つた左右の移動で行を跨ぎます
:set guioptions-=a非 Unix のみ。選擇時に自動的にコピーしません

キーマッピング:

<Down>實際の行ではなく表示された行の單位で移動します
<Up>同上
Q"gq" コマンドで文章整形します
<BS>ビジュアルモードで選擇範圍を削除します
CTRL-Xビジュアルモードで選擇範圍を切り取つてクリップボードにコピーします
<S-Del>同上
CTRL-Cビジュアルモードで選擇範圍をクリップボードにコピーします
<C-Insert>同上
CTRL-Vクリップボードから貼り付けます (どのモードでも)
<S-Insert>同上
CTRL-Q本來の CTRL-V の機能
CTRL-Z元に戾します (undo)
CTRL-Yやり直します (redo)
<M-Space>システムメニューを表示します
CTRL-A全てを選擇します
<C-Tab>次のウィンドウへ。CTRL-W w と同じ
<C-F4>ウィンドウを閉ぢます。CTRL-W c と同じ

追記:

Hint:
ノーマルモードのコマンドを連續して使用するには CTRL-L を使用します。|i_CTRL-L|

初期化

このセクションは Vim の非 GUI バージョンについて書きます。GUI をスタートさせた時の追加の初期化は |gui-fork| を參照してください。

スタート時に、Vim は環境變數とファイルを調べ、然るべく値を設定します。Vim はこの順序で取り掛かかります。

  1. オプション ’shell’ と ’term’ を設定する

    環境變數 SHELL が存在するなら、オプション ’shell’ を設定するのに使はれます。MS-DOS と Win32 では SHELL が設定されてゐない場合 COMSPEC の値が使用されます。

    環境變數 TERM が存在するなら、オプション ’term’ を設定するのに使はれます。しかし、後で GUI を開始するときに ’term’ は變更されます (下のステップ 8 を參照してください)。

  2. 引數を處理する

    Vim を起動するときに指定したオプション引數やファイル名を調べます。指定されたファイルのバッファを作成します (まだ讀み込みません)。引數 |-V| を使ふと、初期化處理のデバッグ用にこれ以降で起こることを表示したりログに書き出したりできます。

  3. 環境變數とファイルの Ex コマンドを實行する

    環境變數の値は 1 つの Ex コマンドラインとして讀まれるので、複數のコマンドを實行したい時には ’|’ か "<NL>" で區切る必要があります。

    "vimrc" ファイルは初期化コマンドを含んだファイルです。vimrc ファイルは 1 行ずつ Ex コマンドとして實行されます。"exrc" とほぼ等價です。それらは同じタイプのファイルですが、"exrc" が常に Vi によつて使はれるのに對して、"vimrc" は Vim 特有のものです。|vimrc-intro| も參照してください。

    個人の初期化ファイルの配置場所:

    Unix$HOME/.vimrc, $HOME/.vim/vimrc
    OS/2$HOME/.vimrc, $HOME/vimfiles/vimrc, $VIM/.vimrc (または _vimrc)
    MS-Windows$HOME/_vimrc, $HOME/vimfiles/vimrc, $VIM/_vimrc
    Amigas:.vimrc, home:.vimrc, home:vimfiles:vimrc, $VIM/.vimrc

    初期化ファイルは上記の順に檢索され、最初に見つかつたものだけが讀み込まれます。

    推奬: Vim の設定ファイルは全て $HOME/.vim/ ディレクトリ (MS-Windows では $HOME/vimfiles/) に置いてください。さうすれば設定ファイルを別のシステムにコピーするのが容易になります。

    Vim が "-u filename" で起動された場合、デフォルトの vimrc の代はりに "filename" が使はれます。續く初期化處理の 4. までがスキップされます。$MYVIMRC は設定されません。

    "vim -u NORC" によりファイルを讀み込むことなくこれらの初期化を省略することができます。"vim -u NONE" を使用するとさらにプラグインも讀み込みません。|-u|

    起動引數 "-s" により Vim が Ex モードで起動されたなら、續く 4. までの初期化處理がスキップされます。オプション "-u" だけが處理されます。

    Note:
    |mzscheme| インターフェイスを使用する場合は、vimrc ファイルの讀み込み後に初期化されることに注意してください。それより後に ’mzschemedll’ を變更しても效果はありません。

  4. プラグインスクリプトを讀み込む

    次のコマンドと同じことを實行します:

    :runtime! plugin/**/*.vim
    

    オプション ’runtimepath’ に指定された各ディレクトリのサブディレクトリ "plugin" にある擴張子が ".vim" となつてゐるファイルを實行します (各ディレクトリごとに名前順で實行される)。サブディレクトリに對しても再歸的に檢索されます。 ただし "after" において變更した ’runtimepath’ 內のディレクトリはこの手順をスキップし、after パッケージだけを讀み込みます。下の說明を參照してください。次の場合にはプラグインを讀み込みません:

    Note:
    引數に "-c set noloadplugins" と指定しても意味がないことに注意してください。このコマンドはこの時點ではまだ實行されません。"–cmd ’set noloadplugins’" または "–cmd ’set loadplugins’" を使ふことができます |--cmd|。

    パッケージが讀み込まれます。’packpath’ 內の各エントリの "start" ディレクトリの下で見つかつたプラグインだけが上記の要領で讀み込まれます。見つけた plugin ディレクトリはすべて ’runtimepath’ に追加され、すべてのプラグインが讀み込まれます。詳細は |packages| を參照してください。

    プラグインスクリプトが讀み込まれますが、上で言及したやうに、ここでは "after" で終はるディレクトリに限られます。パッケージが見つかつた際には ’runtimepath’ が變更されます、"after" で終はるディレクトリは追加されないことに注意してください。

  5. shellpipe’ と ’shellredir’ を設定する

    それ以前に設定されてゐなければ、’shell’ オプションに從つて ’shellpipe’ と ’shellredir’ オプションが設定されます。つまり自分で設定しなくても、Vim が適切な ’shellpipe’ と ’shellredir’ の値を設定してくれます。

  6. "-n" コマンド引數が使用されてゐたら、’updatecount’ を 0 に設定する
  7. バイナリオプションを設定する

    Vim の起動時に "-b" フラグが與へられた場合、この時點でバイナリ編輯用のフラグが設定されます。|-b| を參照してください。

  8. GUI の初期化を行ふ

    "gvim" として起動された場合、GUI の初期化が行はれます。|gui-init| を參照してください。

  9. viminfo ファイルを讀み込む

    viminfo’ オプションが空でなければ、viminfo ファイルが讀み込まれます。|viminfo-file| を參照してください。

  10. quickfix ファイルを讀み込む

    Vim に "-q" フラグが與へられた場合、quickfix ファイルが讀み込まれます。これに失敗すると Vim は終了します。

  11. 全てのウィンドウを開く

    |-o| フラグが與へられた場合、ウィンドウが開きます (しかしまだ表示されません)。|-p| フラグが與へられた場合、タブページが作られます (しかしまだ表示されません)。

    スクリーンが切り替へられると、描畫が始まります。"-q" フラグが Vim に與へられた場合、最初のエラーにジャンプします。全てのバッファがロードされます。

  12. スタートアップコマンドが實行される

    "-t" フラグが Vim に與へられた場合、タグにジャンプします。 |-c| と |+cmd| 引數で與へられたコマンドが實行されます。 ’insertmode’ オプションがセットされてゐると、插入モードに入ります。 スタートフラグがリセットされ、has("vim_starting") がゼロを返すやうになります。 |v:vim_did_enter| 變數が 1 にセットされます。 |VimEnter| の autocommand が實行されます。

最初に見つかつた vimrc, gvimrc が $MYVIMRC, $MYGVIMRC に設定されます。

初期化のヒント

スタンダードセットアップ:

全ての編輯セッションに有效な、デフォルト設定とキーマッピングを設定する vimrc ファイルを作成します。それを既に 3b で述べた位置に置きます:

~/.vimrc(Unix and OS/2)
s:.vimrc(Amiga)
$VIM\_vimrc(MS-DOS and Win32)

Note:
vimrc ファイルを作るとデフォルトで ’compatible’ オプションがオフに設定されます。|compatible-default| を參照してください。

ローカルセットアップ:

特定のディレクトリだけにおいて編輯時に必要になるコマンドを vimrc ファイルに書き、そのディレクトリに ".vimrc" (MS-DOS と Win32 は "_vimrc") といふ名前で置きます。

Note:
Vim に、これらのファイルを見るやうに指定するには、’exrc’ オプションをオンにする必要があることに注意してください。|trojan-horse| (トロイの木馬) も參照してください。

システムセットアップ:

これは複數人で使ふ UNIX システムを管理し、全員のデフォルト設定を行ひたい時に適用されます。デフォルト設定とキーマッピングを行ふコマンドを vimrc ファイルに記述し、":version" コマンドで表示される場所に置きます。

Vim の現在狀態をファイルに保存する

オプションの値を變へたときや、キーマッピングを作成した時には、それらを後で再利用するために vimrc ファイルに保存したいでせう。現在の設定狀態をファイルに保存するためには |save-settings| を參照してください。

Vi ユーザーの設定の問題の囘避

Vi は環境變數 EXINIT とファイル "~/.exrc" を初期化に使用します。もし (Vim の設定が) Vi に干涉して欲しくないならば、それらを使ふ替はりに VIMINIT と vimrc を使用します。

Amiga の環境變數

Amiga には 2 種類の環境變數が存在します。1 つは DOS 1.3 (かそれ以上) の setenv コマンドで、これは Vim によつて認識されます。Amiga Dos 1.3 のマニュアルを參照してください。古い Manx の Set コマンド (バージョン 5.0 以前) の環境變數は、認識されません。

MS-DOS の行區切り文字

MS-DOS 風 (MS-DOS 自身、Win32、そして OS/2) では、全ての vimrc ファイルは行區切文字として <CR> <NL> を使用してゐると假定します。<NL> だけを行區切文字として持つファイルや、":map xx yy^M" のやうな設定のファイルを使ふ場合、問題を引き起こします。末尾の ‘^M’ は無視されてしまふでせう。

Vi と互換性のあるデフォルトの値

Vim が起動すると、オプション ’compatible’ がオンに設定されます。これは初期化時に使用されます。しかし以下の條件のいづれかに當てはまると、直ちに ’nocompatible’ が設定されます。

Note:
上記はシステムの vimrc ファイルでは發生しないことに注意してください。

これには他のオプションを設定やリセットする副作用があります (’compatible’ を參照してください)。しかし變更されるのは、設定やリセットされてゐないオプションに限られます。これは、Vim 起動時に ’compatible’ の値に起こるのと同樣の作用となります。

compatible’ はリセットされず、|defaults.vim| が讀み込まれない:

compatible’ を .vimrc で設定すると副作用が發生します。マッピングは見つかつた時點で解釋されるので、"<CR>" のやうなものを使ふ時に違ひが生じます。もしもマッピングが ’compatible’ の値に依存してゐる場合、そのマッピングを定義する前に ’compatible’ を設定します。

.vimrc ファイルが無い際のデフォルト

Vim を普通に起動してユーザー vimrc ファイルが見つからない場合には、$VIMRUTIME/defaults.vim スクリプトが讀み込まれます。このスクリプトは ’compatible’ をオフにし、シンタックスハイライトを有效にする他、幾つかのことを實施します。詳細はそのスクリプトを參照してください。

Note:
これは正確には Vim 8.0 からではなく 7.4.2111 から導入されました。

これは Vim の新規ユーザーにとつて良く機能します。自分で .vimrc を作る際には、その最上部のはうに以下の 2 行を追加することが推奬されます:

unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim

$VIMRUNTIME/vimrc_example をコピーすることでも、同じことができます。他の方法として、defaults.vim 自體をあなたの .vimrc にコピーし、變更をすることもできます。(ただしこの方法では、將來 defaults.vim が變更された際に、そのアップデートは反映されません)

もしも defaults.vim の一部が氣に入らない場合でも、まづ defaults.vim を讀み込んでから、個々の設定を變更することができます。個別の項目をどのやうに變更するべきかのヒントとして defaults.vim ファイルを參照してください。 システムワイドの vimrc を使つてゐて defaults.vim を使ひたくない場合には、"skip_defaults_vim" 變數を設定します。これが設定された狀態で、自分の .vimrc で defaults.vim を讀み込みたい場合には、上で示した例のやうに、最初に unlet skip_defaults_vim を行ふと良いでせう。

トロイの木馬を囘避する

現在のディレクトリにある "vimrc" や "exrc" を讀み込むときに、’secure’ オプションを設定することで、安全性のために幾つかのコマンドを無效にすることができます。タグファイル內のコマンドを實行する際にも常にこれが行はれます。さうでないと他人が作成した惡意を持つたコマンドを、偶然實行してしまふ可能性があります。使用不可になるコマンドは、シェルを起動するものと、ファイルに書き込むものと、そして ":autocmd" です。":map" コマンドは表示され、どのやうなマッピングがなされたか確認することができます。 ローカルな vimrc ファイル內で全てのコマンドを實行したい場合には、EXINIT か VIMINIT 環境變數か、グローバルな "exrc" もしくは "vimrc" ファイルで ’secure’ オプションをオフに設定します。現在のディレクトリにある "vimrc" と "exrc" からは、理由は明らですが、これは設定できません。 UNIX システムでは、vimrc ファイルの所有權がユーザーにないときだけ ’secure’ が適用されます。

警告:
vimrc か exrc を含むアーカイブを展開したときには、そのファイルはあなた自身のものになります。そこには安全性保護などありません。Vim を起動する前に現在のディレクトリに vimrc ファイルがないかチェックするか、’exrc’ オプションをオフに設定したはうが良いでせう。幾つかの UNIX システムでは一般ユーザーがファイルに "chown" を行ふことを許してゐるものがあります。これは別のユーザーが惡意に滿ちた vimrc を作成し、所有者を貴方にすることを可能にしてゐます。注意してください!

タグサーチコマンドを使ふ時には、實行されるサーチコマンド (タグファイルの各行の最後の部分) は常に安全なモードで行はれます。これは現在のディレクトリにある vimrc/exrc からコマンドが實行されるのと、ちやうど同じやうに動作します。

Vim の起動が遲いときには

Vim の起動に時閒がかかる場合は |--startuptime| 引數を使つて原因を探すことができます。よくある原因としては次のやうなものがあります:

紹介メッセージ

ファイル名を與へずに Vim を起動した場合、(Vim のことを知らない人に向けて) 紹介メッセージが表示されます。そのメッセージはなんらかの操作によつて畫面が再描畫されるとすぐに消されます。もう一度メッセージを見るには、":intro" コマンドを使用します (表示するスペースがなければ一部だけが表示されます)。

起動時に紹介メッセージを表示しないやうにするには ’shortmess’ に ’I’ フラグを追加します。

起動引數に |--help| や |--version| を指定すると Vim はメッセージを出力して終了します。通常はそのメッセージは標準出力に送られるので、リダイレクトしてファイルに書き込むことができます:

vim --help >file

Vim でその出力を取り込むには:

:read !vim --help

gvim は標準出力と標準エラー出力が端末に繋がつてないときに、自身がデスクトップから起動され、メッセージを出力する端末がないものと判斷します。このせゐで上記の ":read" コマンドを使用した例は使へません。使用できるやうにするには ’shellredir’ を標準設定の ">&" から ">" へ變更します:

:set shellredir=>
:read !gvim --help

しかしこのやうにしても gvim が標準出力を使用しないやうなシステムでは機能しません。

5. $VIM と $VIMRUNTIME

環境變數の "$VIM" は、設定ファイル ".vimrc" のやうな、Vim が使用するさまざまなファイルの置き場所を見つけるために利用されます。"$VIM" の値はシステムに依存します。|startup| を參照してください。

全てのユーザーが環境變數 $VIM を設定しなくてすむやうに、Vim は次の順番で $VIM の値を決定します:

  1. 環境變數 $VIM が定義されてゐればそれを使ひます。$VIM を定義して Vim が使用するファイルをそのディレクトリから探し出すやうにできます。例:
    setenv VIM /home/paul/vim
    
  2. helpfile’ が問題のある環境變數を含んでゐなければその値を使ひます (標準設定は "$VIMRUNTIME/doc/help.txt" であり、これはニワトリと卵の問題を含んでゐます)。ファイル名 ("help.txt" など) の部分は取り除かれます。そしてディレクトリ名の最後が "doc", "runtime", "vim{version}" (例へば "vim54")、のどれかならそれも取り除かれます。
  3. MSDOS, Win32, OS/2, では Vim の實行可能ファイルがあるディレクトリを使用します。ディレクトリ名の最後が "/src" ならそれは取り除かれます。配布されてゐる Vim 一式の .zip ファイルをあるディレクトリに展開し、檢索パスを調整して使つてゐるやうなら有用です。ディレクトリ名の最後が "runtime" か "vim{version}" (例へば "vim54") ならそれは取り除かれます。
  4. Unix ではコンパイル時に指定したインストール先のディレクトリを使用します (":version" の出力を見て確認できます)。

このうちのどれかが使用できるなら Vim は環境變數 $VIM を設定します。あとからその値を變更するには ":let" コマンドを次のやうに使ひます:

:let $VIM = "/home/paul/vim/"

環境變數の "$VIMRUNTIME" は、ヘルプファイルや構文强調表示の定義ファイルのやうな、Vim が使用するさまざまな支援ファイルの置き場所を見つけるために使用されます。例へば、主要なヘルプファイルは通常は "$VIMRUNTIME/doc/help.txt" です。普通はユーザーが自分で $VIMRUNTIME を設定せずに、Vim に設定させます。Vim は次の順番で $VIMRUNTIME の値を探します:

  1. 環境變數 $VIMRUNTIME が設定されてゐればそれを使ひます。ランタイムファイルを特殊な場所に置くときに設定します。
  2. "$VIM/vim{version}" ディレクトリがあればそれを使ひます。{version} は Vim のバージョン番號から ’-’ や ’.’ を除いた部分です。例へば "$VIM/vim54"。これは $VIMRUNTIME として一般的な値です。
  3. "$VIM/runtime" ディレクトリがあればそれを使ひます。
  4. $VIM の値を使ひます。これは古いバージョンとの互換性のためです。
  5. オプション ’helpfile’ が設定されてゐて ’$’ を含んでゐないとき、その値を使用します。最後の "doc/help.txt" は取り除かれます。

Unix でコンパイル時に $VIMRUNTIME の初期値を設定した場合 (":version" の出力をみて確認できます)、2 から 4 は無視されます。そして 5 を試したあとにコンパイル時に設定した値が使用されます。つまり $VIM の値を使はずにコンパイル時に設定した値を使用するといふことです。これは $VIM が "/etc" でランタイムファイルが "/usr/share/vim/vim54" にあるやうな場合に便利です。

このうちのどれかが使用できるなら Vim は環境變數 $VIMRUNTIME を設定します。あとからその値を變更するには ":let" コマンドを次のやうに使ひます:

:let $VIMRUNTIME = "/home/piet/vim/vim54"

シェル內で $VIMRUNTIME の値が必要な場合 (例へば、ヘルプファイルを grep するスクリプトなど) は、次のやうにすれば得られます:

VIMRUNTIME=`vim -e -T dumb --cmd 'exe "set t_cm=\<C-M>"|echo $VIMRUNTIME|quit' | tr -d '\015' `

$VIMRUNTIME を空の値に設定してはいけません。いくつかの機能が動作しなくなる場合があります。

6. サスペンド

CTRL-Z

":stop" のやうに Vim をサスペンドします。

ノーマルモードとビジュアルモードで動作します。插入モードとコマンドラインモードでは、CTRL-Z は通常のキャラクタ文字として入力・插入されます。ビジュアルモードで使用したときはサスペンドから復歸するとノーマルモードになります。

Note:
CTRL-Z がアンドゥになる場合は |mswin.vim| を參照してください。

:sus[pend][!] または
:st[op][!]

Vim をサスペンドします。

autowrite’ がオンのときに ’!’ を付けなかつたときには、ファイル名を持つ未保存のバッファは全て保存されます。’!’ を付けたときや、’autowrite’ がオフのときには、未保存のバッファは保存されないので、後で Vim をフォアグラウンドに戾すのを忘れてはなりません。

GUI モードでは、サスペンドは gvim のアイコン化として實裝されてゐます。Windows 95/NT では、gvim は最小化されます。

多くの UNIX システムでは、Vim を CTRL-Z でサスペンドすることが可能です。これはノーマルモードとビジュアルモードにおいて有效です (次の章 |vim-modes| を參照してください)。Vim を再びフォアグラウンドに戾せば、續きの作業を行ふことができます。それ以外のシステムでは、CTRL-Z は新しいシェルをスタートさせます。これはコマンド ":sh" と同じです。この場合、シェルを終了させれば Vim で續きの作業を行ふことができます。{譯注: |vim-modes| に何がある?}

X-windows では Vim をサスペンドするとセレクションの所有權が失はれます。つまり選擇していた內容を他のアプリケーションにコピーすることができません (さうしないと Vim が停止してゐるのでセレクションを得ようとしたプログラムがフリーズしてしまひます)。

7. 終了

Vim を終了する方法はいくつかあります:

:cquit‘ を使つたり、エラーメッセージがある場合には、Vim は終了コード 1 で終了します。エラーは ‘:silent!‘ または ‘:catch‘ を使ふことで避けられます。

8. 設定の保存

多くの人は vimrc ファイルを手作業で編輯してゐるでせう。この機能はそのやうな人に優れた利便性を提供します。vimrc ファイルを自動的に作成するコマンドが用意されてゐて、作成したファイルをそのまま、もしくは一部分だけをコピーして使用することができます。

:mk[exrc] [file]

現在のキーマッピングと變更されてゐるオプションを [file] に保存します ([file] を省略するとカレントディレクトリの ".exrc" に保存されます)。[file] がすでにあるときには保存しません。

:mk[exrc]! [file]

現在のキーマッピングと變更されてゐるオプションを [file] に保存します ([file] を省略するとカレントディレクトリの ".exrc" に保存されます)。[file] がすでにあるときには上書き保存します。

:mkv[imrc][!] [file]

":mkexrc" と同じだが [file] を省略したときにカレントディレクトリの ".vimrc" に保存します。コマンド ":version" もファイルに書き込まれます。

これらのコマンドは ":map" コマンドや ":set" コマンドをファイルに書き込みます。書き込んだコマンドを實行するとキーマッピングやオプションが現在と同じやうに設定されます。オプションの ’columns’, ’endofline’, ’fileformat’, ’key’, ’lines’, ’modified’, ’scroll’, ’term’, ’textmode’, ’ttyfast’, ’ttymouse’ は端末やファイルに依存するため含まれません。

Note:
オプションの ’binary’, ’paste’, ’readonly’ が含まれることに注意してください。これは必ずしも望むやうな動作ではないかもしれません。

マッピングに特殊なキーが使はれてゐるときは、マッピングが正しく解釋されるやうに、オプション ’cpoptions’ が一時的に初期値に戾されます。Vi との互換性はなくなりますが、別の端末でもそのマッピングを使用できるやうになります。

グローバルなマッピングだけが保存されます。バッファローカルなマッピングは保存されません。

一般的な方法は、デフォルトの ".vimrc" ファイルを使ひ、":map" や ":set" コマンドで設定を變更し、それをファイルに保存するといふものです。まづ ":source ~piet/.vimrc.Cprogs" のやうなコマンドでデフォルトの ".vimrc" を讀み込み、實際に設定を變更してから、":mkvimrc!" を使つてカレントディレクトリに設定を保存します。もしもこのファイルをデフォルトの .vimrc にしたいならば、UNIX ではホームディレクトリへ、Amiga ならば s: へ、MS-DOS ならば $VIM ディレクトリへそのファイルを移動します。自動コマンド |autocommand| やモードライン |modeline| も、同じ方法を使つて設定することができます。

vimrc にオプションの設定を 1 つだけ加へるには次のやうにします:

  1. Vim で vimrc ファイルを開きます。
  2. 期待どほりになるやうにオプションを設定します。例へば、’guifont’ を設定していろんなフォントを試します。
  3. オプションを設定する行を追加します。値を入力するのに ’=’ レジスタを使用します。例へば、オプション ’guifont’ の設定を加へるには:
    o:set guifont=<C-R>=&guifont<CR><Esc>
    

    [<C-R> は CTRL-R, <CR> はエンターキー, <Esc> はエスケープキー]

    特別な文字 (特にスペース) はエスケープする必要があります。

Note:
.vimrc ファイルを作成するときには、いくつかの副作用を持つオプション ’compatible’ が影響することに注意してください。|'compatible'| を參照してください。副作用を防ぐため、":mkvimrc", ":mkexrc", ":mksession" は最初にオプション ’compatible’ の設定を出力します。

9. ビューとセッション (Views and Sessions)

ユーザーマニュアルの |21.4| と |21.5| で簡單に紹介されてゐます。

ビューとは、あるウィンドウに適用された設定の集合です。ビューを保存しておいて、あとからそれを復元することで、開いてゐたテキストをまた同じやうに表示することができます。ウィンドウに關聯したオプションやマッピングも復元されるので、ビューを保存したときと同じ狀態で作業を再開することができます。

セッションとは、全てのウィンドウのビューとグローバルな設定のことです。セッションを保存しておいて、あとからそれを復元することで、各ウィンドウのレイアウトを元に戾すことができます。セッションを利用してすばやくプロジェクト (作業單位) を切り替へることが可能で、そのプロジェクトで開いてゐたファイルを自動的に開くことができます。

ビューとセッションは viminfo ファイルを擴張した便利な機能です。ビューとセッションを viminfo ファイル (|viminfo-file|) と倂用することで全ての情報を記錄することができます。

保存しておいたビューやセッションを素早く再開するには引數 |-S| を使ひます:

vim -S Session.vim

これら全ては {|+mksession| が有效な場合のみ利用可能な機能} です。

:mks[ession][!] [file]

現在のセッションを復元するための Vim script を作成します。[!] を付けたときはファイルを上書保存します。[file] を省略したときは "Session.vim" に保存します。

":mksession" の出力は ":mkvimrc" の出力に似てゐますが、さらにいくつかのコマンドが追加されてゐます。どのコマンドが出力されるかはオプション ’sessionoptions’ に依存します。保存したファイルは、コマンド ":source" で實行すると次の效果があります:

  1. sessionoptions’ に "options" が含まれてゐるときは、グローバルなマッピングとオプションを復元します。スクリプトローカルなマッピングは復元されません。
  2. sessionoptions’ に "globals" が含まれてゐるときは、大文字で始まつて 1 つ以上の小文字を含む名前を持つたグローバルな變數を復元します。
  3. 現在讀み込まれてゐるバッファを全て開放します。
  4. sessionoptions’ に "curdir" が含まれてゐるときは、カレントディレクトリを復元します。あるいは、’sessionoptions’ に "sesdir" が含まれてゐるときは、カレントディレクトリをセッションファイルが保存されてゐるディレクトリに變更します。
  5. sessionoptions’ に "winpos" が含まれてゐるときは、GUI ウィンドウの位置を復元します。
  6. sessionoptions’ に "resize" が含まれてゐるときは、スクリーンのサイズを復元します。
  7. sessionoptions’ に "buffers" が含まれてゐるときは、バッファリストと各バッファにおけるカーソルの位置を復元します。隱れ (hidden) バッファや開放濟み (unloaded) バッファも含めて、全てのバッファを復元します。"buffers" が含まれてゐないときは、ウィンドウに表示されてゐるバッファのみが復元されます。
  8. 全てのウィンドウとそのレイアウトを復元します。’sessionoptions’ に "help" が含まれてゐるときは、ヘルプウィンドウも復元します。’sessionoptions’ に "blank" が含まれてゐるときは、無名のバッファを編輯していたウィンドウも復元します。

    sessionoptions’ に "winsize" が含まれてゐて、ヘルプウィンドウや無名バッファのウィンドウが除外されてゐないときは、ウィンドウのサイズも復元します (スクリーンサイズに比例します)。"winsize" が含まれてゐないときは、ウィンドウは妥當なサイズになります。

  9. 各ウィンドウのビューを |:mkview| の機能と同じやうに復元します。しかし ’viewoptions’ ではなく ’sessionoptions’ が使はれます。
  10. セッションファイルと同じ名前で最後が "x.vim" (eXtra の x) といふ名前のファイルがあればそのファイルを實行します。この仕組を使つてセッションに關聯した處理や設定、例へば GUI のメニューを作成するなど、を行ふことができます。

    {譯注: セッションファイルが SESSION.vim なら SESSIONx.vim が實行されます。}

セッションを復元すると、內部變數の "v:this_session" (|this_session-variable|) を使つて現在のセッションの名前 (フルパス) を利用できます。それを利用したマッピングの例:

:nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/

これは現在のセッションを保存してから、別のセッションを開かうとするものです。

sessionoptions’ から "tabpages" が除かれてゐない限り、セッションはすべてのタブページを含みます。|tab-page|

セッションファイルが讀み込まれると、自動コマンドイベント |SessionLoadPost| が發生します。 セッションファイルを讀み込んでゐる閒、グローバル變數 SessionLoad は 1 になります。プラグインはこれを使つてイベント SessionLoadPost が發生するまで、なんらかの作業を後回しにすることができます。

:mkvie[w][!] [file]

現在のウィンドウの狀態を復元するための Vim script を作成します。

[!] を付けたときはファイルを上書保存します。

[file] を省略したり、1 から 9 の數字を指定したときは、’viewdir’ に指定されたディレクトリに適切な名前で保存されます。’viewdir’ の最後に指定されたパスが存在しないときにはそのディレクトリも作成されます。例へば、’viewdir’ が "$VIM/vimfiles/view" なら "$VIM/vimfiles" の中に "view" が作成されます。

[file] を省略、もしくは數字を指定した場合は、常に上書き保存されます。ビューを復元するときには |:loadview| を使用します。

[file] にファイル名を指定すると、編輯を再開するためのコマンドがそのファイルに保存されます (この場合は ’viewdir’ は使はれません)。

":mkview" の出力は次の項目を含んでゐます:

  1. ウィンドウで使用してゐる引數リストを復元します。グローバルな引數リストを使つてゐるときにはそれが使用されます。引數リストのインデックスも復元されます。
  2. ウィンドウで編輯していたファイルを開きます。編輯していたファイルがなければ、空のウィンドウが作成されます。
  3. viewoptions’ が "options" か "localoptions" を含んでゐるときは、そのバッファやウィンドウに特有な (ローカルな)、マッピング、短縮 (abbreviations)、オプション、を復元します。

    セッションの一部としてビューを保存するときに、’sessionoptions’ に "options" が含まれてゐるときは、オプションのグローバルな値とローカルな値が兩方保存されます。

  4. viewoptions’ が "folds" を含んでゐるときは、手作業で設定した折疊みを復元します。折疊みの開閉狀態も復元します。
  5. ファイルにおけるカーソルとスクロールの位置を復元します。閉ぢた折疊みがあるとうまく機能しません。
  6. ローカルなカレントディレクトリを復元します。グローバルなカレントディレクトリと違つてゐる場合、かつ "curdir" が ’viewoptions’ を含んでゐる場合でのみ。

    {譯注: |current-directory|}

Note:
ビューとセッションは完璧ではないことに注意してください:

:lo[adview] [nr]

編輯中のファイルに關聯したビューを讀み込みます。 [nr] を省略すると、":mkview" で保存したビューが讀み込まれます。[nr] を付けた場合は、":mkview [nr]" で保存したビューが讀み込まれます。

":mkview" と ":loadview" の組は、1 つのファイルに對して全部で 10 個のビューを管理できます。ビューは ’viewdir’ で指定したディレクトリに保存されます。ビューはファイル名を利用して管理されてゐます。そのため、ファイルの名前を變更したり、(シンボリック) リンクファイルを使つてアクセスした場合は、對應するビューを見つけることができません。

たまには ’viewdir’ をきれいに掃除するといいでせう。

*.c ファイルを編輯するときにビューを自動的に保存、復元するには:

au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview

10. viminfo ファイル

いつたん Vim を終了させ、後に再び起動する時には、通常多くの情報が失はれてしまひます。viminfo ファイルは終了する時の情報を保存しておくのに使用され、それにより再起動した時には同じ狀態で編輯セッションを續けることができます。

ユーザーマニュアルの |21.3| で簡單に紹介されてゐます。

viminfo ファイルにはこんなものを記憶できます:

コンパイル時に |+viminfo| 機能が無效にされてゐたら、viminfo ファイルはサポートされません。

セッションファイルも使用することができます。viminfo ファイルは「してゐる仕事」に依存しない、といふ點で異なります。通常 viminfo ファイルは 1 つしか存在しません。セッションファイルは、ある特定の編輯作業の狀態を保存するのに使ひます。セッションファイルは、作業してゐるプロジェクト每に複數作成することが可能です。Viminfo もセッションファイルどちらも、Vim をスタートしてすぐに好みの設定を行ふといふ目的のために、效果的に使用できます。|session-file|

Vim が起動した時に ’viminfo’ オプションが空でなかつたら、viminfo ファイルが讀み込まれ、その情報は適切に使用されます。變數 |v:oldfiles| がセットされる。起動時にはマークは讀み込まれません (しかしファイルマークは讀み込まれます)。起動時に ’viminfo’ オプションをどうやつて設定するのかは |initialization| を參照してください。

Vim が終了する時に ’viminfo’ が空でなかつたら、情報が viminfo ファイルに保存されます (もし既に存在した場合には、それと合倂 (マージ) されます)。’viminfo’ オプションは、どのやうな情報を保存するか、またどのくらゐの量を保存するべきかその限界を指定する爲の情報を含む文字列です。(|'viminfo'| を參照してください)。

マージは 2 つの方法で實施されます。Vim のセッション中で變更や (譯注:新たに) 設定された大半のアイテムは保存され、變更されなかつたものは既存の viminfo ファイルのものが流用されます。例へば:

かうすると viminfo は次のやうになるでせう:

START- 元から viminfo にあつたものは、セッション A 及び B に據らず維持される
AAA- セッション A 由來の値は B により維持される
BBB- セッション B 由來の値
BOTH- セッション B 由來の値、A の値は失はれる

幾つかのアイテムには、最後に變更された値を優先するために、タイムスタンプを用ゐてゐます。これにより Vim セッションの終了順序に關係なく、最新のアイテムが維持されます。タイムスタンプは以下のアイテムに導入されてゐます:

このタイムスタンプ機能自體は Vim 8.0 よりも以前に追加されました。Vim 7.4.1131 以降の Vim 7.4 では各アイテムにタイムスタンプを記錄してゐますが、使つてはゐません。そのため古い Vim と新しい Vim を混在して使ふ場合には、常に新しいデータが維持されます。

Note: Unix における注意點:

マークは個々のファイルに對して別々に保存されます。ファイルが讀み込まれ ’viminfo’ が空でない場合、viminfo ファイルからマーク情報が讀み込まれます。

Note:
マークは Vim が正常に終了したときにだけ保存されます。また、Vim の起動中に開かれた ":bdel" されてゐないファイル全てのマークが記錄されます。もしも ":bdel" で破毀したファイルについてマークを保存しておきたいのならば、":wv" を使ひます。

’[’ と ’]’ のマークは保存されませんが、’"’ は保存されます。’"’ マークはファイルを開いたときに前囘のカーソル位置を復元するのに非常に便利です。

viminfo’ に文字 "r" が與へられた時には、一切のマーク情報は記錄されません。これはリムーバブルメディア上のファイルのマークが保存されるのを避ける場合に使ひます (MS-DOS では "ra:,rb:" を、Amiga では "rdf0:,rdf1:,rdf2:" を使ひます)。

viminfo ファイルにマークが記錄されてゐるファイルの名前が |v:oldfiles| のリストに追加されます。

大文字のマーク (’A から ’Z) は viminfo ファイルが書かれるときに、保存されます。數字のマーク (’0 から ’9) はちよつと特別です。

viminfo ファイルが書き込まれる時 (終了時、もしくは ":wviminfo" コマンド實行時)に、’0 が現在のファイルの現在のカーソル位置に設定されます。古い ’0 は ’1 になり、’1 は ’2 になり、以下同樣。"1 から "9 の削除レジスタに起こることに似てゐます。

’0 に記憶する位置が ’1 から ’9 に既出であつた時には、同じ位置が 2 度記憶されるのではなく、そのレジスタが ’0 に浮き上がつてきます。結果として "’0" を使用すると、最後に Vim を終了した時のファイルとその行に戾ることができます。

起動後直ちにそれを行ふには、次のコマンドを試します:

vim -c "normal '0"

csh 互換なシェルではエイリアスをこんな風に使用して:

alias lvim vim -c '"'normal "'"0'"'

bash ライクなシェルでは:

alias lvim='vim -c "normal '\''0"'

特定のファイルのマークを保存しないやうにするには ’viminfo’ に "r" フラグを追加します。

Viminfo ファイルの名前

文字エンコーディング

viminfo ファイルのテキストはオプション ’encoding’ で指定したエンコーディングで保存されます。通常は ’encoding’ の設定はいつも同じなので、問題なく機能します。しかしながら、もしも viminfo ファイルを讀み込むときに、’encoding’ の設定が viminfo ファイルを保存したときとは違ふエンコーディングに設定されてゐると、いくつかのテキスト (ASCII 以外の文字) は不正な文字になつてしまひます。それを囘避するには、オプション ’viminfo’ に ’c’ フラグを追加します:

:set viminfo+=c

さうすると Vim は、viminfo ファイルを保存したときの ’encoding’ から現在の ’encoding’ へとテキストを變換します。これを利用するには |+iconv| が有效になつてゐる必要があります。ファイル名は變換されません。

viminfo ファイルを手動で讀み書きする

viminfo ファイルを手動で讀み書きするのに 2 つのコマンドが用意されてゐます。これは同時に起動してゐる複數の Vim 閒で、レジスタの內容を交換するのに利用できます: まず片方で ":wv" をしてから、もう片方で ":rv" をします。既にレジスタに何かを記憶してゐる場合には、":rv!" する必要があることに注意してください。またこれを行ふとコマンドラインの履歷を含む全ての情報が、送り側の Vim のもので上書きされてしまふことにも注意してください。

viminfo ファイル自體を手で編輯することもできますが、Vim によつて作られる正しいフォーマットの viminfo を元にすることを推奬します。一度試してみればどういふ構造になつてゐるかよく分かるでせう。これを覺えておけば、Vim を起動したときにいつでも設定しておきたい內容を、"~/.my_viminfo" といふやうなファイルに用意しておくときに重寶します。例としては、あるデータをレジスタに豫め讀み込んでおくとか、コマンドライン履歷に特定のコマンドをいれるとか、さういふ使ひ方があります。.vimrc ファイルに次の 1 行を入れておけば

:rviminfo! ~/.my_viminfo

その情報を讀み込むことができます。ファイルの種類によつて (C コードだとか vim スクリプトだとか)、異なる viminfo を持ち、":autocmd" を組み合はせることでファイル名に基づいたりしながら、それらを使用することもできます (|:autocmd|) を參照してください。

Vim が viminfo ファイルを讀み込み中にエラーを檢出すると、ファイルの上書きはされなくなります。もしも 10 個以上のエラーがある場合には、それ以上 viminfo ファイルを讀み込むのを止めます。

かうするのは viminfo ファイル內のファイル名が閒違つてゐる場合、突發的にそのファイルを破壞してしまふのを避けるためです。これは "vim -R file" としたいときに、誤つて "vim -i file" とタイプしてしまふと起こり得ます (さう、偶然何人かが實際にさうしてしまひましたよ!!)。

viminfo ファイルにエラーがあつたけれども viminfo を上書きしたいのならば、エラーを修正するか、またはファイルを消すかのどちらかが必要です (Vim の實行中は、ほとんどの情報が恢復してしまひます)。

:rv[iminfo][!] [file]

viminfo ファイルを [file] (デフォルト:上記參照) から讀込みます。[!] が與へれらた場合、既に設定されてゐる情報 (レジスタ、マーク、|v:oldfiles|、その他) は上書きされます。

:wv[iminfo][!] [file]

viminfo ファイルを [file] (デフォルト: 上記參照) として保存します。まづ既存のファイルの (古い) 情報が讀み込まれ、Vim 內部の (新しい) 情報とマージ (合倂) されてから、ファイルに保存されます。[!] を指定すると古い情報は讀み込まれず、Vim 內部の情報だけが保存されます。’viminfo’ が空 ("") に設定されてゐる場合は、100 個のファイルのマークが書き出されます。

"E929: Too many viminfo temp files" ("E929: 一時 viminfo ファイルが多過ぎます!") といふエラーが出たときには、古い一時ファイル (例へば ~/.viminf*) が殘つてゐないことを確かめ、.viminfo ファイルを保存するディレクトリの書込み權限を確認してください。

:ol[dfiles]

viminfo ファイルにマークが記錄されてゐるファイルのリストを表示します。起動時にこのリストが讀み込まれ、‘:rviminfo!‘ を行つた後でのみ變更されます。|v:oldfiles| も參照してください。このリストで表示される番號は |c_#<| で使ふことができます。出力は |:filter| でフィルタリングできます。例:

filter /\.vim/ oldfiles

ファイル名に對してフィルタリングが行はれます。

{|+eval| 機能付きでコンパイルされたときのみ有效}

:bro[wse] ol[dfiles][!]

|:oldfiles| と同じやうにファイルのリストを表示し、番號の入力を待ちます。有效な番號が入力されると、リスト中のそのファイルを開きます。

|press-enter| プロンプトが表示されたときは "q" を押すとファイル番號を入力するプロンプトに戾れます。! をつけると變更中のバッファを破毀します。|abandon|

{tiny または small でコンパイルされたときは利用できない}


Up: 目次   [Index]