見つけたいところを見つける。
Textwell 1.1.7
分類: 仕事効率化,ユーティリティ
価格: \300 (Sociomedia)
Textwellの検索アクションは「T("search")」。キーワードを探して次々飛んでいけるスグレモノですが、いかんせん、閲覧性が低い。シラミツブシ感が強いです。シラミって実際見たことないですけど、もう少しパッと見てパッと飛べる方法はないものか。
そんなわけで、カーソル行または選択範囲をキーワードと見なすアクション。調べたい単語を書きJumperを実行すると、その言葉が含まれる行を一覧表示します。
<meta name=viewport content=initial-scale=1,user-scalable=no> <style> body{ background:#eee; word-wrap:break-word; margin:0; } hr{ border:1px #fafafa solid; } table{ width:100%; table-layout:fixed; } td.num{ width:40px; color:white; background:#99cc00; vertical-align:top; text-align:center; } td.end{ width:40px; color:white; background:#990033; vertical-align:top; text-align:center; } </style> <body id=wine> <script> word=T.current; text=T.text; list=new Array(); list=text.split("\n"); Disp(); document.ontouchstart=Search; function Disp(){ m=mode=(word)? 0:1; exp=new RegExp(word,"im"); s="<hr>"; for(i=0;i<list.length;i++){ t=list[i]; if(t){ if(mode || (word && t.match(exp))){ content=t.replace(/</g,"<").substr(0,160)+((t.length<160)? "":"(...)"); s+="<table><td class=num onClick=Jump("+i+")>"+("000"+(i+1)).slice(-4)+"</td><td onClick=Jump("+i+")> "+content+"</td></table><hr>\n"; mode=0; } }else{ mode=m; } } s+="<table><td class=end onClick=Jump("+i+")>"+("000"+i).slice(-4)+"</td><td onClick=Jump("+i+")> (end)</td></table><hr>\n"; wine.innerHTML=s; s=(word)? "[ "+word+" ]":"Jumper"; T.title(s); } function Jump(x){ last=0; for(i=0;i<x;i++) last+=list[i].length+1; T("replaceRange",{ text:text, replacingRange:{len:text.length}, selectingRange:{loc:last} }) } function Search(e){ if(e.touches.length>1){ word=prompt("正規表現で検索します",word); Disp(); } } </script> </body>
登録リンクはこちら→ http://tinyurl.com/lnnuft7
キーワードを変更したいときは二本指で画面をスワイプ。ダイアログボックスが出るので、新しい検索語に書き換えてください。そして、飛びたいところをタップするだけ。
空行で検索したり、ダイアログボックスをキャンセルすると、従来の表示になります。つまり、空行の次に来ている段落をリストアップする。長文を書いているとき、章立ての文頭に移動するのが簡単になります。大作を執筆していても全体への目配りができる。
検索には正規表現が使えます。また、大文字/小文字の区別もしません。下書きの用語統一を調べることもできるし、CSVファイルを読み込めばデータベースになる。iPhoneの狭い画面でも、自由に鳥瞰し自在に移動できる。Textwellでgrepしようという魂胆です。