Vim とは? 6KB での説明 (EUC Japanese) vim ("Vi IMproved") は vi クローン、つまりテキストエディタである vi に似たプログラムのひとつです。 vim はあらゆる端末(エミュレータ)のテキストモードで動作しますが、 GUI(グラフィック・ユーザ・インタフェース)も持っていて、メニューや マウスをサポートします。 可用性: vim は多くのプラットフォームで使え、vi と比べて多くの機能が追加さ れています。 ( http://www.vim.org/viusers.php を参照下さい) vim は vi のほとんどすべてのコマンドとの互換性があります。vi のバ グは除きます ;-) オペレーティング・システム(OS) vim は多くのシステムで使えます: AmigaOS, Atari MiNT, BeOS, DOS, MacOS, NextStep, OS/2, OSF, RiscOS, SGI, UNIX, VMS, WIn16 + Win32 (Windows95/98/00/NT) - 特に FreeBSD and Linux. :-) 著作権: 制作と保守を主に行なっている Bram Moolenaar 氏 に 著作権があります。 vim はチャリティーウェアです。ウガンダの孤児への寄付をお奨めしま す。 ソース: vim はオープン・ソースです、皆さんからの改善のお手伝いを歓迎しま す。 === 機能 初心者のエディタ、ユーザに親切: vim が vi よりも初心者にわかりやすいのは、オンライン・ヘルプや、 コマンドの取消とやり直し(失敗を気にせず、単に取消+やり直し)や、マ ウスや設定可能なアイコンやメニューのサポート(GUI)があるからです。 文字コードと端末(エミュレータ): Vim は iso-latin1 文字セットとその termcap をサポートしています。 (Vanilla Vi はここに問題を抱えています) 文字と言語: vim は右から左に書く言語(例: アラビア語、ペルシャ語、ヘブライ語) とマルチバイト・テキスト、つまり中国語、日本語、韓国語(ハングル) のように 1 バイトより長いバイト長で表現されるグラフィカルな文字をサ ポートしています。技術的に言うと、UTF-8 と ユニコードのテキストをサ ポートしていることになります。) テキスト・フォーマット(整形)とビジュアルモード: vim を使えば、テキストの一部をハイライトする(色を変える)ことで 「ビジュアルに」選択し、操作することができます。例えば、コピー、削 除、置換、左右のシフト、大文字/小文字変換、テキストの字下げを保っ たまま整形などが可能です。vim は矩形のテキストブロックを選択/操作 することもできます。 自動コマンド: vim は自動コマンドも備えていて、(ファイル読み込み時など様々なイ ベント発生時に)コマンドを実行できます。(例: 圧縮されたファイルの 自動解凍) 合字(ごうじ, あわせじ)の入力 vim は 2 文字を組み合わせた特殊な文字を入力できます。(例:「"」と 「a」でウムラウトの付いた a )他の組み合わせを定義することも可能で す。 ファイル形式の検出と変換: vim は Dos, Mac, Unix といったファイルのタイプを自動検出したり、 他のフォーマットで格納したりすることもできます。Windows の unix2dos はもう必要ありません。 履歴(ヒストリ)機能: vim はコマンドと検索の履歴を憶えているので、以前に入力したコマン ドや検索パターンを再入力したり、書き換えて再発行することができます。 マクロ記録: vim なら、何度も繰り返される作業を再現するために編集作業を「記録」 できます。 メモリ制限: vim の 1 行あたりの長さやバッファのサイズは vanilla Vi と比べて非 常に大きく設定されています。 マルチバッファと画面分割: vim は複数のバッファのエディットが可能で、画面をいくつかのサブウ ィンドウに分割できます(水平方向と垂直方向の両方)。そのため、複数 ファイルや複数箇所を眺めることができます。 数値の先行指定: vim は vi よりも多くのコマンドで先行数値を指定できます。(例: put) ランタイム・ファイル(ヘルプファイルとシンタクス・ファイル) vim には様々なエディットの状況に合わせた 70 のヘルプファイルが用 意されています。いくつかのテキストは OS に合わせたものです。 スクリプト: vim にはスクリプト言語が組み込まれていて、簡単な拡張ができるよう になっています。 検索オフセット: vim では検索コマンドにオフセットを指定でき、テキストを見つけた後 のカーソルの移動先を指定できます。 セッション・リカバリ vim はエディット・セッションの情報をファイル(viminfo)に退避し、 次回の起動時に回復することができます。退避/回復できるエディット・ セッションは例えばバッファリスト、ファイルマーク、レジスタ、コマン ドと検索のヒストリなどです。 タブの空白化: vim はタブを空白化してテキストにすることができます。(expandtab, :retab). タグ: vim は tags ファイルを参照して得たインデクスと多くのタグ・スタッ ク・コマンドを使ってファイル内のテキストを検索できます。 テキスト・オブジェクト: vim はパラグラフ、センテンス、word、WORD、あるいはそれらを空白で くくったものなどといった「テキストオブジェクト」を認識し、それらの 定義を設定することもできます。 シンタクスごとの色づけ: vim はエディットするプログラミング言語ごとにテキストを色付けでき ます。 どんな言語(シンタクス)のファイルであるかを定義することもできます。 vim には 200 を超すシンタクス・ファイルが用意されています。一般的 なプログラミング言語向け ( Ada, C, C++, Eiffel, Fortran, Haskell, Java, Lisp, Modula, Pascal, Prolog, Python, Scheme, Smalltalk, SQL, Verilog, VisualBasic )、数学用プログラム向け ( Maple, Matlab, Mathematica, SAS )、Web などのマークアップ・テキスト向け ( DocBook, HTML, LaTeX, PostScript, SGML-LinuxDoc, TeX, WML, XML )、プログラム の出力向け ( diff, man )、 プログラムのセットアップ・ファイル向け ( 4DOS, Apache, autoconfig, BibTeX, CSS, CVS, elm, IDL, LILO, pine, procmail, samba, slrn )、 シェル・スクリプトとセットアップ向け ( sh, bash, csh, ksh, zsh )、スクリプト言語向け ( awk, Perl, sed, yacc )、 システム・ファイル向け ( printcap, .Xdefaults )、さらにもちろん vim とそのヘルプテキスト向けなど。 特殊用途向けに用意されたコード: vim には Perl, Tcl, Python 向けにオプションで用意されたものがあり ます。 vim には Windows 下で OLE オートメーション・サーバとして動作させ るコードがあります。 vim には X-window 用のコードが用意されていて、設定可能なメニュー やマウスがサポートされます。 などなど、他にもたくさんあります! WWW での vim のホームページ: http://www.vim.org/ vim の機能に関する詳しい記述: http://www.vim.org/about.php 原著 (English): Sven Guckes guckes@vim.org Last update: Tue Oct 03 20:00:00 MET DST 2000 日本語訳 (Translated into Japanese): Toshiya Kawakami kawakami@lead.dion.ne.jp Last updated: Mon Nov 06 19:50:00 JST 2000