地味ーにschemeやってます。全然身になってないですが><。こういうのは諦め悪くやるのが良いかなっと。
最近「プログラミングGauche」も買い風呂場とかでチマチマ読んでます。ところで、やっぱりエディタはEmacsとの相性が良いらしくて、読んでるだけで便利そうで「schemeを効率よく勉強するのはEmacsやるのがいいのかなぁ?」とか思って、何回か試してみるんですがvimに慣れているものでどうもダメだ。
しかも、Emacsに慣れてしまうとvimを使った時にEmacsのキーを連打してしまう。んじゃ、vimでどこまでイケるかやってみようかという経過をメモ代わりにエントリー。
まだ、schemeを理解してないってのもあるんだけど、カラースキームとかにはあんまり不満がないのでデフォルトで入ってるschemeのカラースキームでOK(オイ)。他に以下のような物があるらしいです。慣れてきたらインストールしてみようと思う。
んで、結局何をしたいかと言うと、goshの結果を新しいウィンドウ(バッファ)に出力を表示したいって事です。以下のような、MzSchemeのインターフェースを追加する方法を書いている方がいたのだけど、やりたいのはgaucheの結果を取りたいのだ。(あと、vimのコンパイルとか面倒だった。)
多分、普通は以下リンクのように「:!gosh %」とか外部コマンド扱いで現在編集しているファイルをgoshに送るというのが普通なのかも知れないけど、Emacsみたいにショートカット一発でバッファに出したいなぁと。出力が長いと見れなくなるし、あとカーソル移動とかもできないので結果のコピペとかも面倒。
例えば、「プログラミングGauche」の中にあるデバッグコード出力する例にすると。
(define (fact n)
(if (= n 0)
1
(* n #?=(fact (-n 1)))))↑こんなのを普通に「:!gosh %」するとこんな感じになる↓。あ、ちなみに「%」は現在編集しているファイルのパスを入れるって事らしいです。
実行すると…。
なので、vimスクリプトでどうにかなるかなっと、書いた事もないvimスクリプトをいじってみた。
fun! GoshRunAll()
" とりあえず保存をする。あと現在のファイル名を保存しておく
w%
let fname = expand("%")
" 5行のバッファを「gosh_out」という名前でウィンドウの下に作る
below 5new gosh_out
" 前の出力があるかも知れんので削除する
execute ":0,%delete"
" goshを起動する。pathは設定してない。
execute "r !gosh -i ".fname
" 出力結果を保存しておく
w /path/to/gosh_out
endfun
nmap <c-s> :call GoshRunAll()<cr>これをschemeファイルを編集する時に読み込まれるvimスクリプトに入れておく、syntaxとかftpluginあたりの奴に入れたらいいと思う。今回はCtrl-Sキーでgoshに送り込むように設定しておいた。んで、実際Ctrl-Sで起動してみる。
無事出来るようになった。便利!
多分、もっとスマートな方法があるんだろうけど自分的にはこれで十分満足。ただ気になるのはEmacsと違って、スクラッチバッファ的な物がないので(俺が知らないだけかもだけど)、ファイルのような処理にしなければならないのがちとイマイチ。
後は、ヴィジュアルモードで選択した場所だけをgoshに送って評価とかしたいな・・・vimscriptやろうかなぁ・・・。うーん。誰かプラグインとか配布してないのかしらん。
Webデザインをする時にはFireworks(Adobe)をずっと使っている(いた?)。
Fireworksはあんまり噂にならない感じの目立たない存在だけど、illustratorとかより軽いしWebデザインするときにはモックアップが一枚のファイルで管理できたり(多分illustratorとかも多分出来るけど、面倒)、動作が軽かったり、スライス(一部の画像のみを切り出す)が簡単に作れたりと、Fireworksファンであり続けたんです。
ただ、フリーで他に良い物は無いのか?とここ数年探してたりしてた。Inkscapeはベクターグラフィック(ドローソフト)として評価も高いので、ずっと気になっている存在ではあったんだけど、スライスの方法がずっと分からなくて(知らなくて)やっぱりFireworksに戻ってきてしまう。というのを繰り返していたんだけど、フトしたきっかけでスライスも出来るという事を説明した動画を見つけた。
あ、その前にInkscapeの簡易説明を公式サイトより引用。
InkscapeはW3C標準のScalable Vector Graphics(SVG)フォーマットを使ったオープンソースのベクターグラフィックソフトで、IllustratorやFreeHand、 CorelDrawや Xara Xに類似しています。
~中略~
InkscapeはJPEG、PNG、TIFFなどのビットマップ画像をインポートでき、PNGとしてエクスポートできます。また、様々なベクターベースのフォーマットにも対応しています。
さて、肝心の動画はこちら。(英語分からない俺が観ても大丈夫なので、理解できると思う)
そうかー!透明度が高い状態の四角形のオブジェクトを貼り付けてその領域を書き出すって形になるのか!腑に落ちた。でもちょっと面倒かもなぁ。
ただ、スライスが出来るという事が分かったので、今後はInkscape率が高くなるかも知れません。SVG形式での保存ですので、そのままモックを見せ合う事も簡単に出来そうだし(まーFireworksもPNG形式だから同じだけどね)。
あとは自動化ツールがあるってのも面白そうだ。軽く調べた所だと、SVG形式はXMLだからその結果を外部プログラム(スクリプト)に渡して編集して、結果を戻すって形式になるみたい。この形式だったら言語とか選ばないしイイね。
東京嫉妬経由。cssファイルをvimで編集している時に、一番確認に時間がかかるのは私の場合色指定だったりします。
ブラウザでオートロードとかしてもその色指定の場所をブラウザ上で探すのも結構手間。それにちゃんとした色を作るときはドローソフトとか使ってたりするので、その二度手間もある。
んで、cssを編集している時に「#ffff00」とかの指定を「#ffff00」みたいに指定された色で文字の背景に色をつけるというvimプラグインを配布されていたので紹介。
自分の場合は、~/runtime/syntax/css.vimの最後に追加した。htmlファイルとかphpファイルとかの編集でもcssのシンタックスを読み込んでいるしね。
黒い色を指定すると文字自体が読みにくくなるのはご愛嬌だけど、かなーり便利。微妙な色指定には使えないけどデバッグやら簡単なチェックには激しく使える。