Friday 18 January 2013

w3m + shell script

w3m, 以前に紹介したことのある テキストブラウザ.
当時は「普段は使わないだろうな」とかいってるものの,
文章だけ読むならかなり使いやすいし読みやすいし,で案外ちょくちょく使ってる.

今回はそれと shell script の相性が結構いいねんという話.
※僕はこれが初めて書いた shell  script です.
いろいろ間違ってるとことか better なやり方があるとかある気がしますが,
その場合はご指摘いただけるとうれしいです.
学習記みたいな感じで,一応記録に残しとこうか,みたいな意図の記事です.


shell script というのはまあ,
ここでは terminal で普段は一個一個コマンド打っていってやるのを纏めて1つのコマンドに,
みたいな感じで使います.

結構色々なサイトで検索結果とかページの名付けのルールというのはわかりやすくて,

  • google 検索 →  www.google.(co.uk とか co.jp とか .fr とか)/search?q=(keyword)
     ここでkeyword が複数語を含む場合は (単語1)+(単語2) という形.
  • wikipedia → (jaとか enとか).wikipedia.org/wiki/(項目名)
     項目名の半角スペースは _ に置換.
  • translate.google.com/#(翻訳元言語コード)/(翻訳先言語コード)/翻訳テキスト
などなど.うぃきぺたん のやつとかは,出先でネット接続が不安定な時とかによく使います.

さて今回は,vim で作業しながらふっと英単語の意味を検索したいが,
非常に稀なことに手許に電子辞書がないという場合.

vim では :!(command) で unix のコマンドを実行できます.
ここで 引数として渡した単語をオンラインで提供されてる辞書系ので閲覧することをしたい.
難しいことはなにも考えず,検索結果をそのまま w3m で閲覧するだけにしましょう.
辞書サイトはなんでもいいけど, thefreedictionary.com とかにしてみましょうか.
ここは
  http://www.thefreedictionary.com/(項目名)
になっているみたい.単語間区切りは半角スペースか + で通るみたいです.

と,いうわけで,たとえばファイル名を vdict.sh にしたら
$ ./vdict.sh hoge
という命令で hoge を検索した結果が見られれば(とりあえず)いい訳ですねー.つまり
$ w3m "www.thefreedictionary.com/hoge"
と同じ事になればよろしい.

というわけで,vdict.sh (shell script 書くときには拡張子 .sh にするらしい)を書きます.
1つ目の引数は $1, 以降 $2, $3 みたいな感じで,とりあえずは1単語の検索のみを考えます.

#!bin/sh
w3m "www.thefreedictionary.com/$1"
の二行を書いて vdict.sh で保存.
一行目は「この場所にある sh ってのでやるよ〜」って ことらしい.

これだけだと単なるファイルなので,実行してええよってことにしてあげましょう.
$ chmod u+x vdict.sh
 chmod については linux ゲリラ戦記 の この記事で習いました.

これで,(今のところこの作業をしてるフォルダからしか使う予定はないので),
vdict.sh の保存してあるフォルダで
$ ./vdict.sh hoge
で上手く行くはず.
あとは

 i)     path 通したりしてどこからでも使えるようにしてもいいかも.
 ii)    いちいち .sh うつのは面倒かも.
 iii)   今のところ熟語( boxing day とか)は
$ ./vdict.sh "boxing day"
         と "" なりでくくらないと  day が2つ目の引数ととられてアレなので,
   その辺適当にしてくれるようにしてもよさそう.
   今のところ僕にはそれはいらん機能なわけですが.


shell script はちょっと書けるようになると色々捗るとおもう. make も.

No comments:

Post a Comment