Altair☆'s Pageに戻る |
by Altair☆ 更新: 2000年 6月 4日 |
このページでは、OS/2 WARPのTips & Tricksを紹介します。
OS/2のFile Libraryに、ちょっとした自作freewareを公開しています。また、別にOS/2用ソフトウェア・パッケージのインストールについてという文書も用意しておりますので、そちらも参照してみてください。
DIR commandの/V optionは、もう御存じですよね?
ご存じない方は試してみてください。もちろん、環境変数にset
DIRCMD=/V
と設定することもできます。
DOS sessionでも指定できます。(^_-)
Folderの中のfolder iconを開く時に、特にそうなりがちなのですが、いつの間にか用済みのfolderがdesktop上に散在してしまうことがあります。
Folderの中のobjectをmouse clickする際に、Shift keyを押しながらdouble clickすると、そのobjectを開いてから、folderを自動的に閉じてくれます。意外に知らない人、多いんですよね、これ。
但し、folderのpropertyによっては、Shiftを押す前に、single clickで対象のobjectを選んでおいてから、これを行わないと、既に選択されているobjectからdouble clickされたobjectsの全てが開かれてしまうなんてことも起こるので、要注意かも。通常のfolderでは滅多にないけどね。(例えば、始動folderはマルチカラムに設定されているので、要注意)。
Microsoft Internet ExplorerにはOS/2版がありませんから、Windows 3.1用のものをWin-OS/2環境で利用することになります。
ところが、私が利用しているOS/2 WARP J4.0では、動作はするものの「WASAAsyncSelect( ) unable to locate CB for this socket!」というerror messageが出てしまいました。
これは、IBMのPSS Fixpak Library[1]にアクセスし、英語版のTCP/IP (os2ディレクトリではなくtcpipディレクトリです)のDOSBOXのfixの最新版を入手することで解決できました。
Internet Explorerに限らず、DOSやWin-OS/2環境で何らかの不具合がある場合には、試してみる価値があるかもしれません。
私の持っている3 buttons mouseの多くは、button 3のclickがbutton 1 (default設定では左)とbutton 2 (defaultでは右)の同時clickとして働くようです。
例えば、Mouse操作でtask listを表示するには、button 1とbutton 2を同時clickしますが、代わりに、button 3 (中央)をclickしても良いものがあるようです。
日本語版OS/2でも、PC-DOS sessionでは¥キーが効きません。これを効くようにするオマジナイがあります。
KEYB JP,437
KEYBは、\OS2\MDOS directoryにあるTSRで、約5 KByteのmemoryを消費します。もし、DOS_UMB設定をonに(あるいはconfig.sysで、DOS=UMB
を指定)しているなら、LH KEYB JP,437
とし、UMBにKEYBが常駐するようにしても良いでしょう。
DOS/V sessionでKEYBを常駐させると、英語環境とは逆に、\キーを¥として利用できるようになります。この場合には、KEYB JP,932
で常駐させます。
KEYB JP,850
を指定するのが正しいように思えるのですが、invalid code page specifiedエラーになってしまいます。使用コードページが850である場合でも、KEYB JP,437
の指定はエラーになりませんし、私が実際に使ってみた限り問題はないようです。
全画面Win-OS/2を起動すると『ロード中です。お待ちください...』というmessageが表示されますが、それに先行してdefault prompt『C:\>
』が表示されてしまうため、『C:\>ロード中です…
』になってしまいます。実害はありませんが、なんとなく変な感じです。
Win-OS/2を起動するDOS_AUTOEXECで、
prompt $s
としておけば、邪魔な『C:\>
』を表示しないようにできます。
$sはprompt commandに於て、単なる空白文字を意味します。ESC sequenceを使っているわけではないので、ansi.sysは不要です。
lessやlynxを始めとする、UNIXから移植されたapplicationsの多くが、termcapと呼ばれるterminal independent operation routineとterminal capability data baseを使用します。
UNIXからのsoftwareの移植にはemxが利用されるので、そのrun-time packegeをinstallしておられるOS/2 usersのかたも多く、たいてい、
SET TERM=mono
SET TERMCAP=D:/emx/etc/termcap.dat
と設定なさっているようです。
TERM=mono
の代わりに、TERM=ansi
と環境変数を設定すれば、カラフルな文字表示をできるようになります。
PCとUNIXの文化の違いにより、PCしか使ったことがない人がUNIXから移植されたsoftwareを使う際に、障害となるのがmanualの記載方法の違いです。少なくとも私が、このpageや、HTML Tips & Tricksのpageで紹介しているsoftwareのmanualのほとんどが、普通のPC環境のtext browserやtext editorでは読めません。(^^;
OS/2用に移植されたsoftwareに添付されているmananualは、何通りかあるようです。
(^_-)
man pageは、gzipで圧縮されていることもあります。そのような時にはzcat (ふつう、gzipへのsymbolic linc)を併用すればokです。また、unix環境で書かれた日本語のman pageの多くはEUCコードで書かれていることが多く、tmfはEUCをうまく扱えませんので、さらにnkfの併用も必要になるでしょう。
zcat wget.1.gz | tmf -l0 | less
zcat grep.1.gz | nkf -s | tmf -l0 | less
REXXやPerlのscriptingに慣れているかたであれば、man fooとtypeした時に、/emx/bsd/manや/usr/local/manにあるfoo.*を探し出し、さらに見つけたfileの最初の行を判別し、lessやtmf、infoを自動的に起動するようなscriptをman.cmdとして用意しておくと便利かも知れませんね。
なお、OS/2用で本格的なman page systemを構築したければ、沢田石 順さんが公開されています[5]。
OS/2環境の標準的なscript言語にはREXXがありますが、UNIXを中心とする様々な環境で広く利用されているscript言語としてPerlがあり、その処理系はOS/2にも移植されています。
Perl処理系のinstallは簡単で、archiveに添付されたdocumentどおりに作業すれば、Perlで書かれた多くのsoftwareを利用できます。
ここでは、Perlで書かれたsoftware (名前を『foo』と仮定します)をOS/2の『foo.cmd』に変換する方法の一例を簡単に紹介します。Perl処理系はD:\PERL5\perl5.exeとして話しを進めます。あなたが使う環境に合わせて読み替えてください。
extproc D:\PERL5\perl5.exe
-Sx
』を追加します。
これで、コマンドラインから『perl5 foo』の代わりに『foo』と入力できるようになります。(^_-)
extprocの詳細については、OS/2 WARPコマンド解説書(WARP 4では、デスクトップの『アシスタンス・センター』『情報』の下にあります)を、Perlについては、お持ちの処理系のドキュメントを参照してください。
OS/2には、bashやtcshなどが移植されているので、Unix用に書かれたshell scriptも使うことができます。
/bin/shは、bashを流用すればok。cshはtcshを流用すればok。hobbesにあるbashの最新版のInstallationドキュメントは懇切丁寧に書かれているので、ここで解説すべきことはあまり残っていません。
Shell scriptを意識せずに、CMDファイルとして利用するには、拡張子を.cmdにして、先頭の行を、例えば“#! /bin/sh
”だったら、それを“extproc X:\usr\bin\bash.exe
”などと書換えます。これで、shell scrtipがコマンド・プロンプトから起動できるようになります。
ところが、このままでは、“bash: extproc: command not found”などといわれてしまうので、bashやtcshのpathの通ったディレクトリで、
echo #!X:/usr/local/bin/bash > extproc
として、ダミーの何もしないextprocを作っておくと良いでしょう。
extprocは、CMD.EXE内部で普通のコマンドとは異なった処理方法を採られているようで、行頭の‘@’を付けるとうまく働かないので注意してください。また、shell scriptの途中に現れる“#!
”は、おそらく既にbashやtcshの制御下で実行されますから“extproc”に置き換えてはいけません。
例えば以下のようなREXXスクリプトを書いて、あとはコメントに従って環境変数LESSOPENを設定しておけばok。
なお、1998年12月17日以降に、私のOS/2のFile Libraryで公開しているjless (novio6以降)では、このようなREXXスクリプトの指定無しで、bzip2で圧縮されたテキスト・ファイルに対応しています。(^_-)
/* * This is a preprocessor for 'less' * in OS/2 REXX by NBG01720@nifty.ne.jp * * It is used when this environment variable is set: * set LESSOPEN=|lesspipe.cmd %s * To set above value from command prompt, type: * set LESSOPEN=^|lesspipe.cmd ^%^s * To set it in batch file and/or CONFIG.SYS, describe: * set LESSOPEN=^|lesspipe.cmd %%s */ parse arg s; n='2>nul' select when c('.tar')then '@tar tvf' s n when c('.tgz')|c('.tar.gz')|c('.*.tar.Z')then '@tar tzvf' s n when c('.tar.bz2')then /* This one works for the unmodified version of tar: */ '@bzip2 -cd' s n '| tar tvf -' /* This one works with the patched version of tar: */ /* '@tar tyvf' s n' or * '@tar tIvf' s n' */ when c('.zip')then '@unzip -l' s n when c('.LZH')then '@lha v' s n when c('.bz2')then '@bzip2 -dc' s n when c('.Z')|c('.gz')then '@gzip -dc' s n otherwise '@type' s n end exit c: arg d return d=translate(right(s,length(d)))
XFree86を動かしたままOS/2デスクトップに帰るには、Alt-EscとかCtrl-Escを押して戻る手段がありますが、EscよりAltやCtrlを先に離さないと、XFree86に戻った時に、そのシフト・ステータスが残っていて、意図したのとは異なるキー・コードが入力されてしまうことがあります。
そこで、適当なアイコンにOS/2デスクトップに戻る機能を割り付け、そこをマウスでクリックすることが考えられます。
これを実現するのに適当なショート・プログラムが、nyaosの作者である はやまさんのホームページ[4]に公開されているpmjobsです。これを使うと『pmjobs デスクトップ
』で、OS/2デスクトップに戻れますから、あとは、適当なアイコンを作って、ボタンに割り付けるだけ。
ここでは、fvwm2をXFree86のwindow managerとして使っている場合に.fvwmrcに記述すべき定義の例を紹介します。
*FvwmButtons "OS/2 PM" desktop.xpm Exec pmjobs デスクトップ
fvwm2のバージョンによっては、
*FvwmButtons OS/2 desktop.xpm Exec "" pmjobs デスクトップ
これで、desktop.xpm (.xpmというのは、X window用の画像フォーマットの一種)をアイコンとした“OS/2 PM”ボタンに、OS/2デスクトップに戻る機能を定義できます。
FvwmButtonsの使い方や、他のwindow managerでの定義方法は、それぞれのwindow
managerのman pagesをご覧ください。…て、ちょっと不親切かな?
(^^;
Copyright (c) 1995-2002 by Altair☆ <NBG01720@nifty.ne.jp> All rights reserved. 無断転載厳禁 |