2006-11-10

MozRepl の使いどころって?

MozRepl - MozLab - Trac

なんか自分的にはちょっと微妙。

まず DOM の操作をしようと思っても日本語の文字列が unicode escape sequence で渡ってくるので terminal で表示できない。1サンプルにあるように title って入れていきなり訳が分からなくなるのは結構悲しい。また、Firebug だと HTML collection なんかは配列っぽく自動的に表示してくれるがそういうこともない。まぁそんな感じで DOM いじりが便利ってわけでもない。

じゃあ Firebug より使いやすいコンソールなのかというと、rlwrap なんかで readline の恩恵にあずかることはできるが、Rhino のように長いコードがその場で書けるわけではない。Rhino なら例えば for 文の途中で改行してもそのまま書き続けられるが、MozRepl はその場で評価されてしまうのでやっぱり長いワンライナーにせざるを得ない2

今のところいいなと思ったのは inspect() で、これがあればこのオブジェクトにはどんなプロパティあったっけー?と思ったときに放り込むだけでだいたいのことが分かる。

しかし Firefox で気軽にこれをやるととんでもない量のプロパティが列挙されることがよくあるので、more() とか grep() とかあったら便利かもしれないなと思った。screen 上でやってればスクロールバックさせることはできるけど、この操作ってなんだかトロくさくてやなんだよな。

まー遠隔の自動操縦が本来の狙いで、日本語の文字列を避けてできる範囲で使えばすごい便利なんだろうけどなぁ。細かいチェックを Firebug を併用して行って、自動化を MozRepl で行う。そんな感じか。

※ ちょっとずつ慣れてきた。Firebug と違って「タブを区別せずに現在の content の状態に対してアクセスできる」のは便利かもしんない。やっぱ grep() とかほしいな。

[2006-11-11 追記]

repl.search( /RE/, context )

でイケるっぽい。例えば

repl> repl.search( /f/, document )
defaultView
lookupPrefix
isDefaultNamespace
firstChild
insertBefore
prefix
createEntityReference
lastModified
referrer
preferredStylesheetSet
domConfig

こんな感じ。

repl.search( string, context )

だと完全一致になる。

repl> repl.search( 'first', document )
repl> repl.search( /first/, document )
firstChild

ふむふむ。

  1. 手元の環境では唯一 LANG=ja_JP.UTF-8 + Terminal の設定を日本語(MacOS)にしたときに表示できた。が、入力できるわけではない。 

  2. repl.js を読むと inputMode に multiline というものがあるのでやってみたが、どういうメリットがあるのかよく分からなかった。つか multiline で書いている内容を最終的に送信して評価させるために何をしなければならないのか分からなかった。例えば MS-DOS の「copy con file」なら C-z を送信とか、そういうことしなきゃいけないと思うんだけど、どうしたらいいんだろう? 

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm