Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
実行時間が長いコマンドが終わったら、zshが勝手にGrowl通知してくる (Mac/Linux/SSH接続先)ZshMacLinuxGrowlMacOSX Linuxカーネルのmakeとか、実行に時間のかかるコマンドを実行して、終わるのを待って眺めるのは辛い。でもその隙に別のことをやると、そのまま完了を待っているのを忘れてしまって時間を無駄にした気持ちになって辛い。&& growlnotify とかコマンドの後につけるのを忘れたことに気がついて、Ctrl-Cで一旦止めるかどうか悩むのが辛い。 というわけで zshのフックを適当に使って、普通にzshでコマンドを叩くだけで、閾値以上の時間がかかるコマンドが終わると通知してくれる設定を考えてみた。 MacのGrowl 対応 ( growlnotify 必須 ) Linuxのデスクトップ通知対応 ( notify-send 必須 ) SSH接続先
以下を.zshrcファイルに追加して、$home/.zshディレクトリに、*.zsh なファイル名でスクリプトを配置する。 ZSHHOME="${HOME}/.zsh" if [ -d $ZSHHOME -a -r $ZSHHOME -a \ -x $ZSHHOME ]; then for i in $ZSHHOME/*; do [[ ${i##*/} = *.zsh ]] && [ \( -f $i -o -h $i \) -a -r $i ] && . $i done fi 乱雑になりがちな.zshrcファイルを機能ごとに分割して整理したくなったので、方法を探してやってみました。 今はまだ整理が終わってないので、ファイル数が少ないですが、今後増えていくでしょう。 ls ~/.zsh prompt.zsh screen-status.zsh screen-complete.zsh
zshにはエディタ機能も - zed zshはシェル(shell)でありながら、エディタの機能「zed」を備えている。簡単なファイルの編集であれば、zshの提供しているエディタ機能で十分だ。使うにあたっては、まずはプロンプト1.1のようにzedファンクションを読み込んでおく。読み込んだ後は、プロンプト1.2のように"zed ファイル名"と入力すれば編集を行える。 プロンプト1.1 zedファンクションを読み込む
zshというシェルはデフォルトでも素晴らしいのですが、あまりに拡張性が高いので全ての機能を使いこなすのは逆に難しいと思います。 特にzstyleというコマンドの文脈に応じた補完候補への設定関数は、使用するとどうなるのかヘルプを見てもWeb上を見てもよく分かりません。 そんなわけでzstyleの挙動について調べてみました。 参考にしたサイト http://www.gentei.org/~yuuji/rec/pc/zsh/zshcompsys.txt http://wiki.fdiary.net/zsh/?ColoredCompletion http://grml.org/zsh/zsh-lovers.html http://www.dna.bio.keio.ac.jp/~yuji/zsh/zshrc.txt http://q-eng.imat.eng.osaka-cu.ac.jp/~ippe
たぶん、もっと良い方法があるので、こういう釣り記事を書くと誰かが教えてくれるはず。 例えば,.zshrcの中で, xset -b off をするとします。しかし、zshrcをリポジトリとかに入れて共通管理する場合,Xが動いていないサーバー等にログインした場合に盛大にエラーメッセージが出現してしまいます. これを避けるには, 環境依存のコマンドを .zshlocal 等に退避して,共通スクリプトから呼び出すようにする コマンドの存在をチェックする という方法があって,後者で書いています. 具体的には、 if [ -x "`which xset 2>/dev/null`" ]; then ... fi という感じ・・・。まぁ実際は関数にするにしても、どうも不器用ですね. whichの挙動が,シェルの組み込みコマンドの場合とlinuxコマンドの場合で微妙に違うのがまたアレ。
z is the new j First, there was j: http://github.com/rupa/j/. Then, there was j2: http://github.com/rupa/j2/, with some python added. Made it easier to experiment with some stuff I'd been thinking about. Now there's this, where I rewrote j2 back in bash. I like it. Sorry about all the repos , but it kind of grew this way. The biggest change from j is the use of 'frecency' for weighting. Directorie
2014-09-02更新:pcre モジュールを使わないバージョンに差し戻し 以前のエントリで掲載したコードを改良して、 git の作業状態(merge がコンフリクトで中断してるとか interactive rebase 中だとか)も表示するようにしてみた。 以前のこれに加えて merge 中はこんなんなります。 つまり、 作業ディレクトリがクリーンなら緑 追跡されていないファイルがあるときは黄色 追跡されているファイルに変更があるときは赤 変更あり+未追跡ファイルありで太字の赤 merge や rebase の途中ならカッコ内に表示 です。 コード autoload -Uz VCS_INFO_get_data_git; VCS_INFO_get_data_git 2> /dev/null function rprompt-git-current-branch { local name
2011-02-22 zsh でも anything.el っぽいの書いた。 https://github.com/zsh-users/zaw $ git clone git://github.com/zsh-users/zaw Cloning into zaw... remote: Counting objects: 199, done. remote: Compressing objects: 100% (149/149), done. remote: Total 199 (delta 76), reused 133 (delta 43) Receiving objects: 100% (199/199), 31.56 KiB, done. Resolving deltas: 100% (76/76), done. $ cd zaw $ source zaw.zsh して、 ^X; で
他の人がzshを使っているのを見ていると、「もっと便利に使えるのに」と、もやっとしたり、「え、その便利な機能ってなに?」と、発見があったりします。だれかに「この設定をすると便利ですよ」と話しやすくするために、今のzshのおすすめ設定をここに記しておきます。 もし、Emacsも使っている場合はおすすめEmacs設定もどうぞ。 ディレクトリ構成 長年漬け込んできたzshの設定がそこそこの量になっているので、以下のようなディレクトリ構成にして分類しています。主に、zsh標準機能の設定と追加パッケージの設定を分けるためにこうしています。 ~ ├── .zshrc # シェルを起動する毎に読み込まれる。 │ # ~/.zsh.d/zshrcを読み込んで │ # 標準機能の追加設定を行う。 ├── .zshenv # ログイン時に一度だけ読み込まれる。 │ # ~/.zsh.d/zshenvを読み込ん
zshというシェルはbash互換の部分が多いのだが、配列の要素を個別に参照するときの番号(添え字)が異なることが分かった。 zshの配列は1番から ARRAY=("aaa" "bbb" "ccc" "ddd" "eee") printf "0:%s 1:%s 2:%s 3:%s 4:%s 5:%s\n" ${ARRAY[0]} ${ARRAY[1]} ${ARRAY[2]} ${ARRAY[3]} ${ARRAY[4]} ${ARRAY[5]} このスクリプトを実行すると (bashの場合) 0:aaa 1:bbb 2:ccc 3:ddd 4:eee 5: (zshの場合) 0:aaa 1:aaa 2:bbb 3:ccc 4:ddd 5:eeeとなり、zshでの番号がずれている(1番からになる)ことが分かる。 (2009/4/19)トラックバックを頂いて、相手の方のコメントが気になったので
zsh でのコマンド入力時に補完してくれる 例えば、 ls -l /Us まで入力すると、 ls -l /Users と補完してくれる。 こんな感じで、補完された文字は緑色で表示される。 複数候補が出た場合は入力行の下に Tab で複数の候補がでるのと同じ感じで表示される。 元々 Tab での補完を使っていたのだけど、 Tab での補完が絞り込まれるまで何文字か入力しようとして綴りを間違えるというのが結構あった。 しかし、これがあれば、そのようなショーもない綴り間違いが減りそうな気がしているのでした。 導入方法 Incremental completion on zsh 上記に行って zsh ファイルを保存する。 % mkdir -p .zsh/plugin % cd .zsh/plugin % curl -O -L http://mimosa-pudica.net/src/incr-0.
Download incr-0.2.zsh これ何 zsh でインクリメンタルな補完を行うスクリプト。 使い方 source incr*.zsh 戻る y.fujii <y-fujii at mimosa-pudica.net>
連番のファイルがずらーっとあったとき、複数のファイル名を一気にスマートに変えたいことがある。一個ずつちまちまリネームなんてやってられない。そんなときは zsh の zmv を使うと便利なので紹介する。 zmv で何ができるか 例えばこんな感じで 1.txt から 6.txt までファイルがあったとする。 % ls 1.txt 3.txt 5.txt 2.txt 4.txt 6.txtでも、ファイル名短すぎてわかりにくいなー、file-1.txt みたいに頭に file ってつけたいなー、って思ったとしよう。 そんなときのために zsh には zmv ってコマンドがあって、この手の一括リネームがスマートにできる。お手軽な使い方はこんな感じ。 あらかじめ ~/.zshrc にこう書いておいてから、 autoload -Uz zmv alias zmv='noglob zmv -W' 一回のコマ
最近 oh-my-zsh ってのがあるって聞いた。インストールするだけで zsh が便利になるみたいなので、早速試してみた。 oh-my-zsh って何? oh-my-zsh は zsh の設定を管理するフレームワークで、いろんな設定を有効にして管理、更新できるようになる。プロジェクトは GitHub で管理されてる。 http://github.com/robbyrussell/oh-my-zsh 特徴としてこんなことが挙げられてる。 40以上のプロンプト テーマ 便利なプラグイン 自動アップデート機能 コミュニティ主体の開発(みんなの設定を取り込んでいく) インストールすると、だいたいこんなことが設定される。 プロンプトがかっこよく(?)なる alias がいっぱい設定される よく使う option が設定される インストール直後はこんな感じ。 Git のブランチ名も表示される。 必要
シェルで,上のディレクトリに行くのがめんどくさくて,cd ../../../../とかしないといけなくて,指を痛める. 上に行くためのupっていうコマンドを作ることにした. その1 up 3ってやると,3つ上に行くのを作った. function up() { i=0 while [ $i -lt $1 ] do cd ../ i=`expr $i + 1` done } 使い方 % pwd /Users/fkd/co/dev/dotfiles % up 3 % pwd /Users/fkd %これは使いにくくて,cd ../../って打つときは,いくつ上に行くか考えながら,../って打ってる.これだと,先に数えておかないといけなくて,難しかった. その2 考えながら入力できるようにしてみた.引数の数だけ見る. function up() { i=0 while [ $i -lt $# ]
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く