*os_os2.txt*    For Vim バージョン 7.3.  Last change: 2007 Apr 22


		VIMリファレンスマニュアル    by Paul Slootman


							*os2* *OS2* *OS/2*
このファイルはVimのOS/2バージョンの詳細について述べている。

現在のところ、VimのGUIバージョンのネイティブPMは存在しない: OS/2バージョンはコ
ンソールアプリケーションである。しかしながら、Warp4(Win32sをサポートしている)
のユーザならば、Win-OS/2セッションで使用できるWin32sコンパチブルなGUIバージョ
ンが存在する。このファイルではネイティブのコンソールバージョンについて言及す
る。


注意 ~

このOS/2への移植版や、私(訳注:筆者Paul Slootman)や、何人かのOS/2ユーザにとって
はちゃんと動作する;しかしフィードバックは少ししかもらえてないので、(OS/2特有
の)バグがまったく(以下で言及するものを加えても)無いか、バグが現れるような状況
にまだ誰も至っていないのか、のどちらかである。DosとUnixモードでのファイル入出
力、バイナリモード、FATの取り扱いなどは、トラブルになっても良さそうだが、全て
正しく動いている。

知られている問題の一つは、Vimによって開かれたファイルが、Vimのシェルエスケープ
経由で起動されたプログラムによって、継承されてしまうことである。これは特に、そ
の時実行されていたほかのプログラムがあると、そのプログラムが終了するまで、Vim
がバッファに関連付けられたスワップファイルを消すことができないことを意味する。
スワップファイルを消す時に、Vimは消去に失敗してしまうので結局消すことができな
い。そのファイルに対して再びVimセッションを開始しようとすると、警告メッセージ
を受け取ることになる。これは":!start epm"とすると再現できる。Vimを一度終了し、
epmをスタートした時に編集していたファイルを開いてみよう。いま、これの修正を試
みている。

2つ目の問題は、OS/2システムをUnixに対してtelnetしてVimを起動したように、ネット
ワーク経由で使用している状況を、Vimが検出できないことにある。OS/2が「時々」
ファンクションやカーソルキーを認識し、対応する普通のPCのキーボードから生成され
るOS/2のコードへ変換することから、生じる問題のようである。既に幾つか実験はして
いる(OS/2コードを正しい機能にマッピングしたり)が、最終的なことは何も言えない
(余談だがこれはWarp 3で起こる)。そのうち正しく理解されるだろう。


必要条件 ~

Vimを実行するために、emxのランタイム環境が必要になる(最新版は0.9b)。大体次の名
前で存在する(それについてArchieに聞け(訳注:本当?)):

    emxrt.zip     emx runtime package

LIBPATHに示されるディレクトリのどれかに置くべき、emx.dllのコピーを同梱してあ
る。EmxはGPLに基づき配布されるが、emx.dllライブラリはそうではない(どういう意味
かはCOPYING.EMXを参照すればわかる)。

このemx.dllは、emxfix04.zipパッケージの中にあったもので、残念なことにPOSIXの機
能であるselect()にバグ持ちである。Vimの3.27よりも古いバージョンは起動する時に
ハングしてしまう(正確にはvimrcの読み込み中)。これが起こってしまうと、Vimが起動
するまでに何回か<Enter>を叩くことになる。そんときゃVimを更新したほうが良い。


ヘルプとVIMRCファイル ~

手に入れたVimのアーカイブを解凍し、解凍した場所からVimを直接起動すれば、Vimは
ランタイムに必要になるファイルや.vimrcを見つけることができるので、特に設定は要
らない。

ランタイムファイルをバイナリとは別の場所に置くならば、環境変数VIMがヘルプファ
イルやシステムの.vimrcの場所を見つけるのに使用される。次のようなエントリーを
CONFIG.SYSに書く: >

  SET VIM=c:/local/lib/vim

このディレクトリに.vimrcファイルと、その他のVim用ファイルを置く。runtimeディレ
クトリをこのディレクトリにコピーする。Vimはバージョン毎に独自のruntimeディレク
トリを持っている。それは"c:/local/lib/vim/vim54"のように呼ばれる。これでこのよ
うなVimのツリーができあがる:
	c:/local/lib/vim/.vimrc
	c:/local/lib/vim/vim54/filetype.vim
	c:/local/lib/vim/vim54/doc/help.txt
	etc.

Note: OS/2をFATファイルシステムにインストールした場合に対応するため、.vimrc
ファイルは_vimrcでも構わない。Vimはまず.vimrcを探し、それに失敗したら同じ場所
で_vimrcを探す。.vimrcもしくは_vimrcの存在が'compatible'オプションに影響を与
え、思わぬ副作用を生むことがある。|'compatible'|参照。

OS/2でネットワークドライバを使用するならば、ネットワークドライブにVimをインス
トールすることができ(.vimrcファイルを含めて; これを「システム」vimrcファイルと
言う)、個人的な.vimrcのコピーを使う(これが「ユーザ」vimrcファイル)。ユーザ
vimrcファイルは環境変数HOMEに示されるディレクトリに置く。


ファイル名内の環境変数 ~

環境変数HOMEは、ファイル名のなかで~が使用されたときにも使われ、":e ~/textfile"
はHOMEによって示されるディレクトリにある"textfile"を編集することになる。さらに
その他の環境変数も、":n $SRC/*.c"のようにファイル名の中に使用することができ
る。

環境変数HOMEha.viminfoファイルの位置を指定するのにも使われる(|viminfo-file|参
照)。FATファイルシステム上に.viminfoを置くことには、申し訳ないがまだ対応してい
ない。しかし、-iの起動フラグ("vim -i $HOME/_viminfo"のように)を試すことはでき
る。

環境変数HOMEが指定されていない場合は、デフォルトとして"C:/"が使用される。


バックスラッシュ ~

スラッシュ('/')とバックスラッシュ('\')を使うと、ちょっとした問題がある(詳しい
説明は|dos-backslash|)が、Vimは殆どの場合「正しい」判断をする。Vim自信もファイ
ル名にバックスラッシュを使うが、しかし幸いにも入力されれば普通のスラッシュも受
け付ける(実際、そうしたほうが都合が良い事がある)。


一時ファイル ~

一時ファイル(フィルタリング用)は次に示すディレクトリで、ファイルを作成できた最
初のディレクトリに置かれる:
	$TMP
	$TEMP
	C:\TMP
	C:\TEMP
	現在のディレクトリ


端末設定 ~

							*os2ansi*
環境変数TERMには"os2ansi"を用いる(もしくはなにもしない、デフォルトで正しく設定
される)。他のアプリケーション用にTERMを別の値に設定しなければならない時には、.
vimrcの中で端末としてos2ansiを設定することができる。OS/2のANSIエミュレーション
にはかなり制限があることは問題である(例えば行単位での挿入や削除が無い)。

もしも(別のプログラムを使用しているとかで) TERMとして別の値を使いたいならば、
TERMに設定する値が、termcapに適切なキーマッピングを持つエントリとして含まれて
いるか確認する。emxと一緒に配布されるtermcap.datが常にあるとは限らない。選択し
たtermcapエントリーに付け加えるのに適当な値の幾つかがこれである; これらはカー
ソルキーや、名前つき機能キー(pagedownとか)が効くようにしている。

	:ku=\316H:kd=\316P:kl=\316K:kr=\316M:%i=\316t:#4=\316s:\
	:kD=\316S:kI=\316R:kN=\316Q:kP=\316I:kh=\316G:@7=\316O:\
	:k1=\316;:k2=\316<:k3=\316=:k4=\316>:k5=\316?:k6=\316@:\
	:k7=\316A:k8=\316B:k9=\316C:k;=\316D:


Paul Slootman


43行ウィンドウ ~

Steven Tryonが提案した、大きなウィンドウでVimを起動する方法:

PMMailのようなOS/2 WPSのアプリケーションからVimを起動する時には、デフォルトの
25行モードで起動する。快適なウィンドウサイズで使うために、独自の拡張エディタを
"vimbig.cmd"として定義し、'vimbig2.cmd"を呼ぶようにする。多分、かなり強引な方
法だけど、でもちゃんと動く。

vimbig.cmd: >
   @echo off
   start "Vi Improved" /f vimbig2.cmd %1 %2 %3 %4

vimbig2.cmd: >
   @echo off
   mode 80,43
   vim.exe %1 %2 %3 %4
   exit
<

クリップボードを使う (Alexander Wagnerの提供)

OS/2版のVimはシステムのクリップボードに直接アクセスできない。クリップボードを
使うにはほかのアプリケーションを経由する必要がある。これには Stefan Gruendel
によるフリーソフトのパッケージ clipbrd.zip が使える。コンパイルされたバイナリ
と全てのソースがここからダウンロードできる:
	http://www.os2site.com/sw/util/clipboard/index.html
	http://download.uni-hd.de/ftp/pub/os2/pmtools/

このパッケージのインストールは、パッケージに入っている二つの実行可能ファイルを
Vimから呼び出せるようにPATHが通ったディレクトリに置くだけである。

クリップボードからVimにコピーするには :r コマンドを使う。次のようにして
clipbrd.exeを呼び出すだけだ: >

	:r !clipbrd -r

Vimからシステムのクリップボードにコピーするには普通にテキストを選択して次の
ようにする: >

	:!clipbrd -w

これで選択したものをOS/2のクリップボードに書き込める。

簡単に使えるようにこれらのコマンドをマッピングしておくとよい。例えばクリップ
ボードからVimに張り付けるのに F11 を使い、選択したテキストをクリップボードにコ
ピーするのに F12 を使うなら: >

	if has("os2")
	  imap <F11>     <ESC>:r !clipbrd -r<CR>i
	  vmap <F12>     :!clipbrd -w<cr>
	else
	  imap <F11>     <ESC>"*p<CR>i
	  vmap <F12>     "*y
	endif

これはOS/2では clipbrd を使い他のプラットフォームではVimの機能を使う。(この
機能をいつも有効にしておくには .vimrc に上記の内容を書いておく)

 vim:tw=78:ts=8:ft=help:norl:
