えーなんか昼休みになったので久しぶりに録画してみます。 今回はw3mに絡めた例などを中心に... 記事にも書いた通り、w3mとscreenを組み合わせるととっても便利、という 話なのですが、w3m自身がタブブラウズできるようになってますから もうすぐこんな技は不要になるかも。というわけで今のうちに紹介しておきます。 1番がemacs、2番がw3mです。 私の設定だと、Mでリンクを辿ると別のWindow広げてそこでページを 表示というようになります。 見てもらったほうがわかりやすのでちょっとやってみます。 で、Window一覧を見ると...となります。 2番はさっきまでと同じトップの画面で....3番がリンク先のページ... となっております。 ESC-Mとすると、現在見ているページを別のWindowで表示といった感じになります。 3番のw3mからやってみます。 御覧の通り、4番にw3mが起動しています。 3番は...で、4番も...という感じです。 4番閉じました。 これらの機能はw3mの外部ブラウザ呼び出し機能を使って実現されております。 具体的にはこんな感じのスクリプトを実行させています。 2行目のprintenvは気にしないでください... 結局、 screen内でscreenを実行すると、新しいWindowを開いてそこでコマンド (通常はシェル)を実行するという機能を利用しているだけの話です。 ブラウザは3つまで(私は改造して4つにしていますが) 登録できます。 2番目のブラウザ(?)はこんな感じです screen wget -c $@ で、指定されたリンクをwgetで取得とかそんな感じです。 ちょっとやってみます。 あーなんかネットワーク遅いのは仕様なので許してください... こんな感じです。うわもう終わってる...遅いネットワークのくせに。 まあいいです で、3番目のブラウザは普通にnetscape-remoteが登録されています。 うむちゃんとPhoenixにページが表示されました(見えねえよ 4番目のブラウザは、screen -X register . $@だったと思います (詳しくは記事のほう見てください...) これを使うと... http://zinnia.dyndns.org/~zinnia/sdl/works/ こんなふうに、URLをscreenのレジスタ(copy and pasteのバッファ)に コピーすることができます。 現在のページをコピーしたいときは4ESC-Mです... http://zinnia.dyndns.org/~zinnia/sdl/ こんな感じ。 おまけの機能として、googleのオートパイロットっぽい機能を 遊びで実現させています。えーと... ティースカッシュ まず検索したい文字列をコピーして、^Txとすると(あー私の escapeキーは^Aではなくて^Tです) ... 新しいWindowが開いてw3mでgoogle開いて、適当に移動して 検索式入れて検索ボタンを押すという動作をします。 ネタが切れつつあるので、私が某MLの記事検索のために作った ツールの現状報告もしてみます... まずはWanderlustでメール読みます。 で、適当にリンクしたいメールを探します。 日付をコピーします。 で、某ページに飛びます。 検索条件には、subject、author、dateを指定できますが、 流量の多くないMLとかではDateで充分かなと思います。 。。。なんか電話で中断させられたので再開します。 同じこと何度喋らせたら気が済むのかという気がしますがまあいいです(意味不明 記事検索の話の続きです。Dateをコピーしましたので.. Sat, 15 Mar 2003 14:04:44 +0100 こんな感じになります。こいつをさっきのページにpasteしてみます。 こんな感じの検索結果が出てきます。 えーと...IvanさんのSDL 2.0に関する記事ですが... たしかに同じ記事ですね。あとはさっきのURLコピーの機能を使って... とすれば終わりです。 適当にコメントつけて... [Topic] IvanさんがSDL 2.0についてなんか書いてます などとすればSDL Watchの1topicを作ることができるという寸法です。 いよいよネタがないのでemacs-wikiでも開いてみますか...んーなんか 危ないやつばっかりなので困ったもんです。 なお、emacs-wiki-modeの中でoutline-minor-mode上げてます。 うーんJokeがずいぶん溜まったままだ... ええと...今度こそネタがなくなったのでここらへんで終わります。 ではでは。 続きです。実はTake-2です。 さっきはなんか映ってはいけないものが映ってしまった気がするので... 今回はbacktickというものの紹介などをしてみたいと思います。 backtickというのはscreen-3.9.15からサポートされるようになったもので、 詳しくはinfoなどを見てください(さっきより手を抜いているなあ... ともかく、私の環境ではこんな感じのbacktickを仕掛けています。 backtick 0 0 0 tail -F /home/zinnia/notify.txt hardstatus string '%0`' hardstatus message tail -F /home/zinnia/notify.txt というコマンドが、backtickの0番に 登録され、それをhardstatusに表示する、というような感じです。 notify.txtの内容をいじるのは、notifyというコマンドを使います。 単純に追加するだけですね。それをtail -Fで追い掛けることによって、 notify.txtに何か追加されたら(== notifyが実行されたら)それを ステータスラインに表示する、というようなイメージです。 といった感じで。Window切り替えるたびに出てくるので ちょっとうっとうしいですが、空打ちすることで出なくなります。 で、昨日ちょっと紹介したwget-remoteをさらにいじって、 としてみました。wget-notifyは、 というものです。これを使うと.... ... というように、ダウンロードが終わるとステータスラインで知らせてくれるという 寸法です。 えーと、昨日紹介しわすれたんで、w3mとの連携の続きなどを。 こちらはるびきちさんのアイディアによるものです。 前回のデモの残骸が残っていますが... TEXTBOX...じゃなくてinputですね、それを楽に編集する方法の例です。 詳しくはるびきちさんのページを見ていただくとよいのですが、 その機能を私は^T^Mに割当てています。 入力可能状態にしておいて...^T^Mしてみます。 と、なります。 自分でコピーしたりwindow移ったり、ということをしなくても済むので ちょっと楽です。同じ原理により、TEXTAREAの編集をすることもできます。 頭痛のせいであまり知性的な文章を書くことができませんでした。 ...ネタが切れつつあるので(例によって) -nwでのspeedbarの様子とかおみせします。 speedbarはjdeeとかと一緒に使うと便利ですが、単体で使っても diredのかわりみたいになってよいです。 で、非-nw環境だとフレームに表示されるspeedbarですが、 -nwの場合はspeedbar-get-focusというやつを呼ぶことで speedbarの窓を呼び出すことができます。 さっきうっかり見せてしまいましたが... というような感じです。もちろん、CやJavaのソースを編集しているときにも 上記コマンド(私はC-\に割当てています)を呼ぶことで使うことができます。 とかこんな感じです。 すでにお気付きのように、window.el使っていますので、 さっきのソースを別の設定でいじっていると バッファの切り替えとかをしなくて済むので楽です。 といった感じです。window.elについては別のmovieで解説しましたので よかったらそっちも見てやってください。 えー。。。。 ネタがないのでそろそろ終わりたいと思います。 ではまた。 あ、なんかリクエストとかあったら教えてくれると喜ぶかもしれません(←やれよ ではでは。 [見てどうなるという気もしますがTake-1も] 続きです。 えーと、今回は、screen-3.9.15からサポートされたbacktickの話とか。を、 やってみたいと思います。 backtickについては...えーと以前私の日記で取り上げたような気がするのですが、 http://zinnia.dyndns.org/~zinnia/d/2003/02/#20030226-t3-h2-p0 ここらへんからですね。2月...もう3ヶ月前なのか。 で、現在私はこんな感じのbacktickを仕掛けています。 backtick 0 0 0 tail -F /home/zinnia/notify.txt hardstatus string '%0`' hardstatus message tail -F /home/zinnia/notify.txt というコマンドをbacktickの0番に 登録して、その内容をhardstatusで表示するという感じです。 notify.txtというのは、適当に名前をつけただけであまり深い意味はありませんが、 notifyというコマンドによってその内容をどんどんnotify.txtに追加してゆく ことができます。そいつをtail -F でおっかけることにより、 notify.txtに何か新しい行ができたらそれをステータスラインに表示するという 動作をさせることができます。 こんな感じです。Window切り替えるたびに出てくるのがちょっとアレですが... 空打ちすることで消すことができます。 で、こいつを仕込むことで何がうれしいのかという話ですが、 とりあえず昨日ちょっと見せたwget-remoteというコマンドを改造して こんな感じにしてみました。 wget-notifyというのはこんな感じです。wgetが終わったらnotify、 というだけです。 こいつを使うと... ダウンロードが始まり... というように終わったらステータスラインでおしらせしてくれるという感じです。 普段は私はAriaを使っているので、Ariaでダウンロードが終わったときに コマンドを実行させる機能を使って、このnotifyを呼び出しています。 まあ便利かどうかは微妙な感じですが(←・・・) ついでなのでw3mのTEXTBOXを編集するテクニックなどを... こちらはるびきちさんのアイディアによるものです。 うはーまちがえました。 危うく本番の方をいじるところでした。 で、タイトルの編集を行おうというところで、 ^T^M としますと、 というように、TEXTBOXに転送されます。 同じような原理で、別のWindowで動いているEmacsでTEXTAREAを編集させることも できます。 ちょっと脳がユルい感じの文章ですいません。 タイプミスが多いのは頭痛がひどいからで...まあいいんですが ネタがなくなったので(例によって) -nw環境でspeedbar使ってると どんな感じになるかという例などを。 speedbarはjdeeとかと一緒に使うと便利ですが、単体で使っても diredみたいに使えて便利です。 -nwでない環境だと、別のフレームにspeedbarのウインドウ出していじる わけですが、-nwの場合は...speedbar-get-focusというのを呼び出すことで speedbarの窓を出すことができます。 私の場合はC-\で...という感じです。 なんか見えてはいけないものを見てしまった気もしますが気にしないことに。 当然、CとかJavaとかのソースを開いたりすれば、その中でも 使うことができます。えーと... とかこんな感じです。 すでにお気付きだと思いますが、window.elを使っているので、 複数の設定を切り替えることができます。 この部分がwindow.elの状態をあらわしている場所です。現在は1番の 設定。こちらは4番でした。window.elについては別のmovieでやってますので こんなところで。 んー... ネタが思いつかないのでそろそろ終わります。 ではでは。