2013年06月01日

zsh「ふえぇ、麦汁さんのtypoの回数まで数えられるようになっちゃったよぉ……」

typoしたらzshに「ふえぇ」とか言わせるやつ、飽きてきたので機能追加した。 具体的にはその日何回目のtypoか数えておいて その回数で若干出力を変える感じ。 ますますえりっく氏のshellinfoのパクリ感出て来たけど気にしない。

とりあえずそのためのDBを作る。 Mac OS Xはsqlite3が入ってるのでそれを利用する。 あと単に使ってみたかった。

$ sqlite3 ~/.typo.db

んで、テーブル作る。 元Rails厨なので適当にそれっぽい感じに。

sqlite> create table typos(id    integer primary key autoincrement not null,
                           date  text unique not null,
                           count tinyint not null default 0);

あとは .zshrc で command_not_found_handler 関数をごにゃっとする。

command_not_found_handler() {
    date=`date +'%Y-%m-%d'`
    db="$HOME/.typo.db"
    n=`sqlite3 $db "select count from typos where date = '$date'"`
    if [ "$n" = "" ]; then
        n=1
        sqlite3 $db "insert into typos(count, date) values($n, '$date');"
        echo "zsh「ふえぇ、麦汁さんが今日も typo したよぉ……。$0 なんてコマンド存在しないよぉ……」" | tweet > /dev/null 2>&1 &
    else
        n=`expr $n + 1`
        sqlite3 $db "update typos set count = $n where date = '$date';"
        echo "zsh「ふえぇ、麦汁さんがまた typo したよぉ……。今日 $n 回目の typo だよぉ……。$0 なんてコマンド存在しないんだってばぁ……」" | tweet > /dev/null 2>&1 &
    fi
    return 127
}

これでOK。

ふえぇ、typo の回数まで数えられて恥ずかしいよぉ……。

posted by 麦汁 at 11:11 | Comment(0) | TrackBack(0) | zsh | このブログの読者になる | 更新情報をチェックする

2013年04月13日

コマンドtypoった時にzshから勝手につぶやくようにした

@siritori 氏が時々 「えりっくさんが本日初めてのtypoをしました。 #shellinfo」 などとtweetさせているのを見て、 うわあ僕もやりたあい! なんて思ってたのでとりあえず実現してみました。 いわゆるパクリってやつです。

事前に つぶやき専用コマンド tweet-command を試してみた: 麦汁三昧 で導入している tweet-command が必要になります。

それからタイトルでzshと書いているように zshを使っている必要があります。 必要なバージョンは知らないけど5.0.0とか使ってればきっといけるよ!

で、以上の条件が整っていれば後は簡単。 以下の関数を~/.zshrcにでも放り込んでおけばいける。

command_not_found_handler () {
  echo "zsh「ふえぇ、麦汁さんまたtypoだよぉ……。$0 なんてコマンド存在しないよぉ……」" | tweet > /dev/null 2>&1 &
  return 127
}

こうしておけば例えば

$ sl

なんてよくあるtypoした時などに

zsh「ふえぇ、麦汁さんまたtypoだよぉ……。sl なんてコマンド存在しないよぉ……」

どうやらzshちゃんはcommand not foundな時に command_not_found_handler って関数を定義していればそれを実行してくれるらしいよ!

とりあえずechoで文を吐いてそれをtweetコマンドに食わせて tweetコマンドの標準出力、標準エラー出力は盛大に投げ捨てて、 すぐ帰ってくるようにつぶやく処理はバックグラウンドに投げてる。

関数の最後のreturn 127 は再度エラーを投げ直しているような感じ。

@siritori 氏のshellinfo は回数を数えてたりもするようだけど 今回はとりあえずcommand not foundを拾うのだけ……。

タグ:zsh typo
posted by 麦汁 at 10:24 | Comment(0) | TrackBack(0) | zsh | このブログの読者になる | 更新情報をチェックする

2011年10月22日

aliasによるtypo対策

むぎじるさんはよくキーボードでコマンドを叩いたりしているのだけれども 結構な頻度でtypoするので zsh さんの

setopt correct

には大分お世話になっている。

なんだけども、 頻繁にtypoするようなのはもうcorrectでの確認も聞かれたくないので typo対策のためにこんなalias貼ってたりする。

gistに上げたんで誰かエロい人がいい感じに追加してくれるのを期待しておきますわね☆

タグ:zsh ALIAS typo
posted by 麦汁 at 13:58 | Comment(2) | TrackBack(0) | zsh | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。