あんパン

こしあん派

zshでghq管理ディレクトリ以下にいるときはPROMPTのpwdを省略して表示する

motemen/ghq使い始めた.ghqはGitのリポジトリ管理ツールみたいな感じ.

ghq自体かなり便利なのだけど,PROMPTにpwdを表示しているとこれが長くなって大変なことになる.

f:id:masawada:20160222013718p:plain

というわけで,ghq管理ディレクトリ以下にいるときは省略しようというのが今回の試み.

以下のコードを.zshrcに書いてシェルを再起動する.

precmd () {
  RPROMPT="%{${fg[cyan]}%}[$(pwd | sed -e "s,^$HOME,~," | perl -pe "s/~\/(.ghq|.go\/src)\/.+?\//ghq:/")]%{${reset_color}%}"
}

f:id:masawada:20160222014120p:plain

こうなる.

この設定のキモは

$(pwd | sed -e "s,^$HOME,~," | perl -pe "s/~\/(.ghq|.go\/src)\/.+?\//ghq:/")

の部分.pwdして,ルートからの絶対パスのうちホームディレクトリまでをsedで~に置き換えて,その後Perlで~/.ghq/または~/.go/src/があればこれをghq:に置換している.これはぼくが$GOPATH~/.ghqを管理ディレクトリにしているためで,ここは自分の設定にあわせて書き換えるとよさそう.なんかもう少し良い置換方法とかあったら教えてください.

precmdはプロンプト表示直前に実行される関数で,これを定義するとよしなに実行してくれる.設定がわちゃわちゃしているのは色の指定とかが入ってるため.

これで快適にghqを使うことができそう.zsh以外で使えるのかどうかは知らない.

iTunesで再生している曲をTwitterに投稿するNodeアプリケーション作った

github.com

インストール方法

npmには上がってないので

$ npm i -g masawada/tweet-nowplaying

とするとGitHubからインストールできる.

ホームディレクトリに設定用のJSON置いて

$ tweet-nowplaying

とするとツイートできる.

設定方法

$HOME.tweet-nowplaying.jsonという名前で

{
  "keys": {
    "consumer_key":        "CONSUMER_KEY",
    "consumer_secret":     "CONSUMER_SECRET",
    "access_token_key":    "ACCESS_TOKEN_KEY",
    "access_token_secret": "ACCESS_TOKEN_SECRET"
  },
  "format": "Now Playing: \"{name}\" from \"{album}\" ({artist})"
}

という感じのJSONを置いて,キー類を詰める.

その他

playbackのおかげで高速に実装できた

github.com


playback,去年の夏にid:Pasta-Kくんが不具合見つけて直してたんだけど,それがmergeされてなかった.本体を使うようにしてたら特定の曲でundefinedとなる不具合がやはり出たので,pastak/playbackを使うように修正しました.1.0.0が入ってる人は npm update -g masawada/tweet-nowplaying して1.0.1にあげてください.

別ブランチの特定のファイルをvimで開く

$ git show branch_name:/path/to/file

すると別のブランチのファイルを標準出力にだすことができる(知らなかった).

$ git show branch_name:/path/to/file | vim -

するとVimで開けて便利.lessとかに出すのも良さそう.branch_nameはコミットのハッシュでもOK.

消したファイルとかいちいちGitHubに見に行かなくて済むようになった.