私にとってshellで辞書を引けるかどうかはすごく重要です。というかプログラミングするときって辞書を引く機会が多いのでできるだけ手軽な方がいいです。辞書を持ち歩くわけにもいかないし、いちいちブラウザで調べるのも手間過ぎます。専用の辞書ソフトを使うというのも手かもしれませんが、これもブラウザを使うのとあまり差がありません。emacsの中だけに住んでる人はsdicで済ませたりするんでしょうけど、私は最近「脱emacs引きこもり」したので却下。
辞書コマンドを使うようになってまだ1年くらいです。今ではもう欠かすことのできないツールです。(grepでいいんじゃないかという話もありますけど)
で、結局どの辞書コマンドを使っているかというとzeeというperlスクリプトです。下記サイトの「がらくた置き場」から頂きました。(実際はzeeをちょっと改造してあるものをとある人からもらった) こんな感じ
$ zee lisp lispかたこと, 舌足らずに話す LISP List Processor リスプ, コンピュータのプログラミング言語の一つ $ zee scheme scheme 仕組み, 一覧表, 組織, 概要, 理論体系, 図式, 計画, 考え(よく ない)たくらみ, 陰謀, たくらむ $ zee 元旦 元旦 (日本の) New Year's Day 元旦(とそれに続く数日) new year, new, year $ zee プログラム アプリケーション プログラム 【コンピュータ】 application program アプリケーション プログラム インタフェース 【コンピュータ】 API Application Program Interface オブジェクトプログラム object program コスト改善プログラム cost improvement program コボル(事務処理用のプログラム言語) COBOL Common Business Oriented Language デバッグする(プログラムのミスを取り除く) debug ドローイング系のプログラムでよく使われる十字形のカーソル crosshair cursor ネットワーク制御プログラム;略:NCP ... .. .
辞書ファイルはgeneとかjddictとか。オフラインでも使えて超便利。
あと、mtranという自作(?)の翻訳プログラムも結構役に立ってる。けど、web apiを使うのでオフラインでしか使えない。正確には自作じゃなくてここ が元ネタ。このコマンドを自分なりに書きなおしたものを使っています。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/local/bin/gosh | |
(use sxml.ssax) | |
(use sxml.sxpath) | |
(use rfc.http) | |
(use rfc.uri) | |
(use gauche.parseopt) | |
(use gauche.charconv) | |
(define api-key "SET YOUR API-KEY INTO THIS!") | |
(define (usage) | |
(print "Usage: mtran [options ...] text") | |
(print " - f|from : from lang") | |
(print " - t|to : to lang") | |
(print " - s|swap : swap 'from lang' to 'to lang'") | |
(print " - h|help : usage") | |
(exit 2)) | |
(define (print-languages) | |
(print "English - en") | |
(print "Japanese - ja") | |
(print "French - fr") | |
(exit 2)) | |
(define (call-translator-api text :optional (from "en")(to "ja")) | |
(receive (status head body) | |
(http-get "api.microsofttranslator.com" | |
(string-append | |
"/V2/Http.svc/Translate?appid=" api-key | |
"&from=" from | |
"&to=" to | |
"&text=" text)) | |
(ssax:xml->sxml (open-input-string body) '()))) | |
(define (main args) | |
(let-args (cdr args) | |
((from "f|from=s" "en") | |
(to "t|to=s" "ja") | |
(swap "s|swap") | |
(lang "l|languages" => print-languages) | |
(help "h|help" => usage) | |
(else (opt . _) | |
(print "Unknown option : " opt) | |
(usage)) | |
. rest) | |
(let ((text (if (null? rest) | |
(port->string (current-input-port)) | |
(car rest)))) | |
(when swap | |
(let1 temp from | |
(set! from to) | |
(set! to temp))) | |
(let1 ret ((sxpath "/*/text()") | |
(call-translator-api (uri-encode-string text) from to)) | |
(print (if (null? ret) | |
"something wrong." | |
(car ret))))))) |
0 件のコメント:
コメントを投稿