VIM(1)

名前
vim - Vi IMproved, プログラマのテキストエディタ

書式
vim [options] [file ..]
vim [options] -
vim [options] -t tag
vim [options] -q [errorfile]

ex
view
gvim gview evim eview
rvim rview rgvim rgview

説明
Vim は Vi 互換のテキストエディタです。 どのような種類のプレインテキストでも編集できます。 特に、プログラムの編集に力を発揮します。

Vi に多くの改良が加えられています: 多段アンドゥ、マルチウィンドウ、マルチバッファ、構文強調表示、コマンドライン編集、ファイル名補完、ヘルプ、ビジュアル選択、などなど。 Vim と Vi の違いについての要約は ":help vi_diff.txt" を参照してください。

Vim の実行中は ":help" コマンドでヘルプを引くことができます。 下記、オンラインヘルプの項を参照してください。

Vim は次のようなコマンドで起動できます。

    vim file

正確な書式は次の通りです:

    vim [options] [filelist]

filelist を省略した場合は、空のバッファが開かれます。 指定した場合は、以下の四つのうちどれか一つの方法でファイルが開かれます。

file ..
    ファイルのリスト。 一番目のファイルがカレントファイルになり、バッファに読み込まれます。 カーソルは、バッファの一行目に置かれます。 他のファイルを表示するには ":next" コマンドを使ってください。 ファイル名がダッシュで始まるファイルを開く場合は、 filelist の前に "--" を指定してください。

-   ファイルは標準入力から読み込まれます。コマンドは標準エラー (ttyからの入力になっているはず) から読み込まれます。

-t {tag}
    開くファイルとカーソルの初期位置は "tag" に依存します。goto label の一種です。 tags ファイルから {tag} が検索され、関連したファイルがカレントファイルになります。 そして、関連したコマンドが実行されます。 これは主に C 言語のファイルを開くときに使われます。 その場合 {tag} に関数などを指定して使います。 関数を含んでいるファイルが開かれ、その関数の先頭にカーソルが移動する、という動作になります。 詳しくは ":help tag-commands" を参照してください。

-q [errorfile]
    クイックフィックスモードで起動します。 [errorfile] に指定したファイルが読み込まれ、最初のエラーが表示されます。 [errorfile] を省略した場合は、オプション 'errorfile' が使われます (初期設定は、Amiga では "AztecC.Err"、その他のシステムでは "errors.err" です)。 ":cn" コマンドで次のエラーにジャンプできます。 詳しくは ":help quickfix" を参照してください。

Vim は、起動されたときの実行ファイルの名前によって動作を変えます (実行ファイルの実体が同じであっても)。

vim "普通" に起動します。標準の状態です。

ex  Ex モードで起動します。 ノーマルモードに切り替えるには ":vi" コマンドを使ってください。 引数に "-e" を指定した場合と同じです。

view
    読み込み専用モードで起動します。ファイルの保存が制限されます。 引数に "-R" を指定した場合と同じです。

gvim gview
    GUI バージョン。 新しいウィンドウを開いて起動します。 引数に "-g" を指定した場合と同じです。

evim eview
    簡易モードの GUI バージョン。 新しいウィンドウを開いて起動します。 引数に "-y" を指定した場合と同じです。

rvim rview rgvim rgview
    上記と同じですが、制限モードで起動します。シェルコマンドを実行したり、 Vim をサスペンドしたりできなくなります。 引数に "-Z" を指定した場合と同じです。

オプション
ファイル名の前でも後ろでも、好きな順番でオプションを指定できます。 パラメータを必要としない引数は、一つのダッシュにまとめて指定できます。

+[num]
    一番目のファイルの "num" 行目にカーソルを移動します。 "num" を省略した場合は、一行目にカーソルが移動します。

+/{pat}
    一番目のファイルの、最初に {pat} が見つかった行にカーソルが移動します。 検索パターンについては ":help search-pattern" を参照してください。

+{command}

-c {command}
    一番目のファイルが読み込まれた後に {command} が実行されます。 {command} は Ex コマンドとして解釈されます。 {command} に空白を含める場合は、ダブルクォートで囲んでください (シェルに依存)。 例: vim "+set si" main.c
    Note: "+" と "-c" は合わせて 10 個まで指定できます。

-S {file}
    一番目のファイルが読み込まれた後に {file} が実行されます。 これは -c "source {file}" と同じ動作です。 {file} の先頭が '-' の場合は使えません。 {file} が省略された場合は、"Session.vim" が使われます (ただし -S が最後の引数だった場合のみ)。

--cmd {command}
    "-c" と同じですが、vimrc を処理する前にコマンドが実行されます。 これらのコマンドは "-c" コマンドとは別に、10 個まで指定できます。

-A  アラビア語がサポートされていて、アラビア語キーマップがある場合は、アラビア語モードで起動します ('arabic' がオンになります)。 右横書きのファイルを編集できます。 サポートされていない場合はエラーメッセージを表示して終了します。

-b  バイナリモード。 バイナリファイルを編集するためのオプションがいくつか設定されます。

-C  互換モード。'compatible' オプションがオンになります。
     .vimrc ファイルの有無に関わらず、 Vim の動作が Vi 互換になります。

-d  差分モードで起動します。 2 個から 8 個のファイルを引数に指定してください。 指定されたファイルが開かれ、それらのファイルの差分が表示されます。 vimdiff(1) と同様の動作です。

-d {device}
    {device} を端末として開きます。 Amiga でのみ使います。 例: "-d con:20/30/600/150".

-D  デバッグ。 スクリプトの最初のコマンドが実行されるところからデバッグモードを開始します。

-e  Ex モードで起動します。 実行ファイルの名前が "ex" の場合と同じです。

-E  改良版 Ex モードで起動します。 実行ファイルの名前が "exim" の場合と同じです。

-f  フォアグラウンド。GUI バージョンで、プロセスをフォークしなくなります。 Amiga の場合は、新しいウィンドウで再起動しなくなります。 メールソフトなどから Vim を起動して、編集が終わるまで待機したいような場合に使ってください。 Amiga では、":sh" と "!" コマンドは機能しなくなります。

--nofork
    フォアグラウンド。GUI バージョンで、プロセスをフォークしなくなります。

-F  ペルシア語がサポートされていて、ペルシア語キーマップがある場合は、ペルシア語モードで起動します ('fkmap' と 'rightleft' がオンになります)。 右横書きのファイルを編集できます。 サポートされていない場合はエラーメッセージを表示して終了します。

-g  GUI がサポートされている場合は、GUI で起動します。 サポートされていない場合はエラーメッセージを表示して終了します。

-h  コマンドライン引数やオプションのヘルプを表示して終了します。

-H  ヘブライ語がサポートされていて、ヘブライ語キーマップがある場合は、ヘブライ語モードで起動します ('hkmap' と 'rightleft' がオンになります)。 右横書きのファイルを編集できます。 サポートされていない場合はエラーメッセージを表示して終了します。

-i {viminfo}
    初期設定の "~/.viminfo" の代わりに、viminfo ファイルを読み書きする際に使うファイル名を指定します。 "NONE" を指定すると、.viminfo ファイルを使わないように設定できます。

-L  -r と同じです。

-l  lisp モード。 オプションの 'lisp' と 'showmatch' がオンになります。

-m  ファイルの変更を不可能にします。 オプション 'write' がオフになります。 バッファを変更することはできますが、ファイルを保存することはできません。

-M  変更を不可能にします。 オプションの 'modifiable' と 'write' がオフになり、ファイルの変更と保存ができなくなります。 Note: それらのオプションを設定すれば変更できるようになります。

-N  非互換モード。'compatible' オプションがオフになります。
     .vimrc ファイルの有無に関わらず、 Vim の改良された機能が有効になります。Vi との互換性が少し失われます。

-n  スワップファイルを使用しません。 クラッシュしてもリカバリできなくなります。 フロッピーディスクのような非常に低速なメディアのファイルを読み書きするときに便利です。 ":set uc=0" と設定しても同じです。 戻すには ":set uc=200" と設定してください。

-nb NetBeans と接続し、エディタサーバーになります。 詳しくはヘルプを参照してください。

-o[N]
    N 個のウィンドウを水平分割で開きます。 N を省略した場合は、引数のファイルを個別のウィンドウで開きます。

-O[N]
    N 個のウィンドウを垂直分割で開きます。 N を省略した場合は、引数のファイルを個別のウィンドウで開きます。

-p[N]
    N 個のタブページを開きます。 N を省略した場合は、引数のファイルを個別のタブページで開きます。

-R  読み込み専用モード。 オプション 'readonly' がオンになります。 バッファを変更することはできますが、間違ってファイルを上書きしてしまうのを防ぐことができます。 ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてください。 -R オプションは -n オプションの効果も含んでいます (上記参照)。 オプション 'readonly' は ":set noro" でオフにできます。 詳しくは ":help 'readonly'" を参照してください。

-r  スワップファイルの一覧を表示します。リカバリに関する情報も表示されます。

-r {file}
    リカバリモード。 スワップファイルを使って、クラッシュした編集セッションを復活させます。 スワップファイルは、ファイル名に ".swp" を加えた名前のファイルです。 詳しくは ":help recovery" を参照してください。

-s  サイレントモード。"ex" という名前で起動するか、"-e" オプションの後で "-s" オプションが指定された場合のみ。

-s {scriptin}
    {scriptin} をスクリプトファイルとして読み込まれます。 ファイル中の文字列は、手で入力したときと同じように処理されます。 これは ":source! {scriptin}" と同じ動作です。 エディタが終了する前にファイルの終わりまで読み込んだ場合、それ以降はキーボードから入力を読み込みます。

-T {terminal}
    端末の名前を指定します。 端末が自動的に認識されない場合に使ってください。 Vim が組み込みでサポートしている名前か、 termcap または terminfo ファイルで定義されている名前を指定してください。

-u {vimrc}
    {vimrc} ファイルを使って初期化します。 他の初期化処理はスキップされます。 特殊なファイルを編集する場合などに使ってください。 すべての初期化をスキップするには "NONE" を指定してください。 詳しくは ":help initialization" を参照してください。

-U {gvimrc}
    {gvimrc} ファイルを使って GUI を初期化します。 他の GUI の初期化はスキップされます。 すべての GUI の初期化をスキップするには "NONE" を指定してください。 詳しくは ":help gui-init" を参照してください。

-V[N]
    冗長モード。 スクリプトファイルを実行したり viminfo ファイルを読み書きするたびにメッセージを表示します。 N に指定した数値が 'verbose' に設定されます。 省略した場合は 10 になります。

-v  Vi モードで起動します。 実行ファイルの名前が "vi" の場合と同じです。 実行ファイルの名前が "ex" の場合だけ効果があります。

-w {scriptout}
    入力した文字を {scriptout} に記録します。 "vim -s" や "source!" で実行するためのスクリプトファイルを作成するのに便利です。 {scriptout} ファイルがすでに存在した場合は追加保存されます。

-W {scriptout}
    -w と同じですが、ファイルがすでに存在した場合は上書きされます。

-x  ファイルを暗号化して書き込みます。暗号化キーの入力プロンプトが表示されます。

-X  X サーバーと通信しません。端末での起動時間を短くできます。 しかし、ウィンドウタイトルの変更やクリップボードは使えなくなります。

-y  簡易モードで起動します。 実行ファイルの名前が "evim" や "eview" の場合と同じです。 Vim の動作がモードレスエディタ (click-and-type editor) のようになります。

-Z  制限モード。 実行ファイルの名前が "r" で始まっている場合と同じです。

--  オプション指定の末尾を示す記号です。 これ以降の引数はすべてファイル名として扱われます。 ファイル名が '-' で始まっているファイルを開くときに使ってください。

--clean
    一切の個人設定 (vimrc、プラグイン、その他) を使用しません。 ある問題がクリーンな Vim セットアップで再現するかを確認するのに有用です。

--echo-wid
    GTK GUI のみ: Window ID を標準出力に出力します。

--help
    ヘルプを表示して終了します。"-h" と同じです。

--literal
    引数のファイル名をリテラル文字列として扱います。ワイルドカードを展開しません。 Unix のように、シェルがワイルドカードを展開する場合は機能しません。

--noplugin
    プラグインをロードしません。-u NONE はこの動作を含んでいます。

--remote
    Vim サーバーと通信し、引数に指定されたファイルを Vim サーバーで開きます。 サーバーが存在しない場合は、エラーメッセージを表示され、起動中の Vim でファイルが開かれます。

--remote-expr {expr}
    Vim サーバーと通信し、{expr} に与えられた式を Vim サーバーで実行し、結果を標準出力に出力します。

--remote-send {keys}
    Vim サーバーと通信し、{keys} に与えられたキーを Vim サーバーに送信します。

--remote-silent
    --remote と同じですが、サーバーが存在しなくてもエラーメッセージを表示しません。

--remote-wait
    --remote と同じですが、ファイルが開かれるのを確認できるまで待機します。

--remote-wait-silent
    --remote-wait と同じですが、サーバーが存在しなくてもエラーメッセージを表示しません。

--serverlist
    Vim サーバーの一覧を表示します。

--servername {name}
    サーバーの名前を {name} に設定します。 --remote 引数を指定しなかった場合は、起動中の Vim の名前として使われるので、後からその名前を使ってサーバー通信できます。

--socketid {id}
    GTK GUI のみ: GtkPlug メカニズムを使って gvim を別のウィンドウの中で実行します。

--startuptime {file}
    起動処理の間、経過時間のメッセージをファイル {fname} に書き出します。

--version
    バージョン情報を表示して終了します。

オンラインヘルプ
ヘルプを開くには、 Vim の中で ":help" と入力してください。 ":help 調べたい項目" と入力すれば、指定した項目のヘルプが表示されます。 例: "ZZ" コマンドのヘルプを表示するには ":help ZZ" と入力します。 <Tab> や CTRL-D を使って補完することもできます (":help cmdline-completion" 参照)。 ヘルプには、項目から項目へジャンプできるようにタグが埋め込まれています (ハイパーリンクのようなものです。":help" 参照)。 すべてのヘルプファイルはこの方法で開くことができます。 例: ":help syntax.txt"。

ファイル

/MacVim.app/Contents/Resources/vim/runtime/doc/*.txt
    Vim のヘルプファイル。 ファイルの一覧は ":help doc-file-list" に記載されています。

/MacVim.app/Contents/Resources/vim/runtime/doc/tags
    ヘルプを検索するための tags ファイル。

/MacVim.app/Contents/Resources/vim/runtime/syntax/syntax.vim
    システムの構文定義初期化ファイル。

/MacVim.app/Contents/Resources/vim/runtime/syntax/*.vim
    いろいろな言語用の構文定義ファイル。

/MacVim.app/Contents/Resources/vim/vimrc
    システムの Vim 初期化ファイル。

~/.vimrc
    ユーザーの Vim 初期化ファイル。

/MacVim.app/Contents/Resources/vim/gvimrc
    システムの gvim 初期化ファイル。

~/.gvimrc
    ユーザーの gvim 初期化ファイル。

/MacVim.app/Contents/Resources/vim/runtime/optwin.vim
    ":options" コマンドで使われるファイル。 オプションを表示したり設定したりできます。

/MacVim.app/Contents/Resources/vim/runtime/menu.vim
    システムのメニュー初期化ファイル。gvim で使います。

/MacVim.app/Contents/Resources/vim/runtime/bugreport.vim
    バグレポートを生成するスクリプト。":help bugs" 参照。

/MacVim.app/Contents/Resources/vim/runtime/filetype.vim
    ファイル名からファイルタイプを判定するスクリプト。":help 'filetype'" 参照。

/MacVim.app/Contents/Resources/vim/runtime/scripts.vim
    ファイルの内容からファイルタイプを判定するスクリプト。":help 'filetype'" 参照。

/MacVim.app/Contents/Resources/vim/runtime/print/*.ps
    PostScript 印刷に使われるファイル。

最新の情報は VIM のホームページを参照してください:
<URL:http://www.vim.org/>

関連項目
vimtutor(1)

著者
Vim のほとんどの機能は Bram Moolenaar が開発し、多くの人が協力しました。 ":help credits" を参照してください。
Vim は Stevie を基にしています。Stevie は Tim Thompson、Tony Andrews、 G.R. (Fred) Walter によって開発されました。 ただし、オリジナルのコードはもうほとんど残っていません。

バグ
既知のバグは ":help todo" に記載されています。

Vi の動作を忠実に再現した結果、多くの人がバグだと思うような機能もいくつかあります。 "この動作は Vi と違う" からバグだと思った場合は、 vi_diff.txt を確認してみてください (ファイルを開くか、 Vim から ":help vi_diff.txt" と入力)。 オプションの 'compatible' と 'cpoptions' も確認してください。