HaskellはIOモナドを使えるので命令的Haskellプログラミングが可能になっているのだが,その代償としてプログラム全体の型は自明なIO ()に潰れてしまう. プログラム全体の型が潰れないような仕組みを考えたのがoiパッケージ.以下は純粋に関数的にプログラムを構成したものである。(もちろん実際には、Haskellのプログラムとして起動するために、main :: IO () が必要であるし、実際の入出力を行うためのプリミティブ関数を構成するにはIOモナドが必要ではある。) {-# LANGUAGE TypeOperators #-} module Main where import Data.OI import Control.Parallel import System.Environmentpmain :: (FilePath,FilePath) -> (FilePath,Fil
http://read-eval-print.blogspot.com/2007/09/blog-post_25.html 俺もアーロンチェア使っている。TDDの教科書にも「安い机と高い椅子を使え」という教えがあるように長時間座りつづける以上椅子大事。 extended_globは **/* とか以外にほとんど使わないので、いざ欲しいときに忘れてしまう。プロセス置換もしかり。ここでワンキーでチートシートの表示ができたら嬉しい。普段Rubyばかりでシェルスクリプトを書かないので、苦労すると思うけど、シェル関数で書いてみようかな。 やってみるとあっさりできた。以下を.zshrcに追加してC-M-hを押すと ~/zsh/cheat-sheet.conf が表示されるようになる。当然補完候補の表示同様編集中のコマンドラインは消えない! cheat-sheet () { zle -M "`cat ~
こいつを~/.zshrcにコピーだ 今回は、そのまま使えるコピペシリーズ第2弾をお送りする。本連載の第10回目でそのまま~/.zshrcにコピーすれば使える設定ファイルを紹介したが、これが好評だった。とりあえず、読者の皆さんはコピペしてzshの世界を堪能したらしい。あれからいくらかの変更や設定追加を行ったので、その最新版を公開しよう。というわけで、持ってけ!! 野郎どもっ!!! リスト1.1 コピー&ペースト対応 ~/.zshrc ファイル -LInux/FreeBSD/Mac OS X 対応版 # users generic .zshrc file for zsh(1) ## Environment variable configuration # # LANG # export LANG=ja_JP.UTF-8 ## Default shell configuration # #
こいつを~/.zshrcへコピーだ これまで、zshの基本となる設定を説明してきた。設定ファイルにエスケープコードを含めておいたためか「そのままコピー&ペーストしたんだけど使えねぇよ!!」という憂き目に遭った読者がいらっしゃったようだ。zshを学び始めるにあたって、この経験はまずい。「ネットで見つけた設定ファイルをコピペしたら、ヒャッホイ!動いたぜ!!」というくらいじゃないとモチベーションは上がらない。 そのようなわけで、今回はそのままコピー&ペーストすれば使える~/.zshrcファイルについて述べておく。zshを始めたばかりのユーザ、またはこれから始めようというユーザは、こいつをコピー&ペースしてとりあえずzshの底力を満喫してほしい。なお、zsherが多いと想定されるLinux、FreeBSD、Mac OS X上で動作するように調整しておいた。 以前設定ファイルをまとめた後に公開したコ
今回は、少し話がそれるが最初にEmacsの話だ。Emacsキーバインド 朝起きると、既に床の横で起動している端末にログイン、おもむろにcvs update -Pdし、Emacsをビルドする。当然、シェルスクリプトで自動化されているのはいうまでもない。しかし、cronに登録しないのは彼の良心である。ギークにとっては日常茶飯事だ。Emacsでは多くの一種独特なショートカットキーを使う。こうしたキーは普段の作業で体に染み付いてしまうもので、シェルを操作するときでもついつい同じキーを叩いてしまいがち。 ここで期待しない動作になるとストレスである。 そんなユーザのために、zshにはEmacs風ショートカットキー設定が用意されている。なにはともあれ~/.zshrcにリスト1.1の設定を追加だ。何の設定もしていなければだいたいEmacs風設定が最初から有効になっている。 リスト1.1Emacsライ
男のbashユーザーが、バラ色の紳士こと漢のzshに乗り換えたときに アッーってなるコト事を先ほどいくつか思いついたので共有する。 !!とかの履歴実行はrコマンドで zshには、r というシェル組み込みコマンドがあって 履歴からの実行が簡単に行える。 たとえば、一番最後に実行したviコマンドを実行したいときなどだ。 bashなんかだと !vi で出来るのだが、 rコマンドだったら % r vi でよい。 直前に実行したコマンドを再び実行したいとき、 bashなんかだと !! というやり方になるが、 rコマンドでは、 % r とするだけでよい。 また、文字列を置き換えてからの履歴実行はどうだろう。 たとえば次のようなbashの例だ。 $ vi .zshrc $ !vi:s/zsh/bash/ これは、最後に実行したviコマンドの引数文字列を ":s/zsh/bash/" によりzshという文
IDEの発展やAjaxなど現在のデベロッパにとってGUIとうまくお付き合いすることは開発効率を上げるうえで必須といえる。しかしながら、シェルというCUI環境も根強い人気がある。GUIと違ったカスタマイズ、アジリティ、効率の良さ、幅広い対応プラットフォームなど、なくてはならないものだ。本連載ではそうしたCUI環境の充実を補佐することを目的とし、"zsh"について語ってみようとおもう。かつてzshはUTF-8の扱いが弱いところがあったが、それもずいぶんと改善され、ここ1年でzshへ移行しやすい状況が整ってきている。はじめるには悪くないタイミングだ。 最初に軽くzshについて紹介しておこう。 名前につく"z"の文字は、「究極の」という意味がこめられているらしい。系統としてはsh系である。つまり、zshはsh系の超高機能シェルといえるだろう。Linuxなどのユーザーであればsh系であることの意味
zshのZLE Editorを使って作られた zedというテキストエディタがカッコいいうえに非常に便利。 zshの補完がそのまま使えたりする。 % autoload zed % zed ./test.txt 操作方法は、 変更を保存するときは、Ctrl+X Ctrl+W または Ctrl+J と入力。 破棄して終了したいときは Ctrl+C を入力すればいい。 あとはどんな bindkey をしているかによって変わるのだが 基本的にemacsキーバインド 使ってみればわかるけどすごく新感覚なエディタ。 その場で編集してる感がすごくある。 ソースにも "他のシェルにはコレは出来ない" と書いてある。(いいすぎだ) # No other shell could do this. # Edit small files with the commandline editor. あと、以下のような
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く