タグ

zshに関するmotemenのブックマーク (28)

  • zsh で source して使うプラグインを作るのは止めにしよう - Qiita

    特に、cd や bindkey など、今動いているシェル上で副作用のある処理を行いたいときは source を使わないとうまくいかないだろう。 一方、source にはこんなデメリットがある。 .zshrc でいっぱい source するとzsh の起動が遅くなる 現在動いているシェルの alias 設定の影響を受ける 特に2つめが厄介だ。例えば grep とかしたときに、alias grep='grep -E' なんか設定してあったら正規表現の意味が変わってしまう。一応 command grep とすれば alias を設定していない元の grep を実行できるけど、いちいちそう書くのも手間だ。 そんなときは autoload を使う形に書き換えるとうまくいく。 autoload というのは「関数体の読み込みを実行する時まで遅らせる」という zsh の機能のこと。これで ~/.zshr

    zsh で source して使うプラグインを作るのは止めにしよう - Qiita
    motemen
    motemen 2014/06/07
  • zshでdateもどき - Just another Ruby porter, 2010-7-a

    ■ ANN: zozo 1.0.0 Released rubygems/bundlerに依存してない場合はロードしなくてもいいわけで、 それをうまいことやってくれるツールらしい。 zozo is a tool that makes it easy to reduce the memory footprint of your applications by having them not load rubygems/bundler at runtime: LINK: http://github.com/jeremyevans/zozo ■ [zsh] zshでエラーが起きたときに終了ステータスを自動的に表示する いままでは PROMPT='%(0?..shell returned [%?] )%m:%2~ %# ' としてたんだけど、これだと m:~ % ls foo ls: cannot

    motemen
    motemen 2010/07/08
  • zshでsudoや|を無視して履歴から補完 @ 7bit

    zshでhistory-beginning-search-backwardをCtrl-Pなどに割り当て、入力したところまでマッチするように履歴から補完するように設定している方は多いと思います。 しかし、プロンプト先頭からカーソル位置までが検索対象となってしまうため、先にsudoを入れたり、パイプの途中から補完するといったことはできません。 そこで、現在のプロンプト入力からいくつか指定のパターンを除外した上で補完できるようなzleのウィジェットを書いてみました。 履歴に sudo apt-get update make make install ldconfig less があったとして、普通は sudo m(補完)としても何も補完されませんが、この設定を用いるとsudo make install => sudo makeのように補完してくれます。 sudo (補完)(補完に必要な文字列を何

    motemen
    motemen 2009/06/30
  • コマンドが失敗したらプロンプトを赤くする - blog.8-p.info

    しばらく前から、コマンドの終了ステータスをプロンプトの色に反映させるようにしている。 終了ステータスとは C言語なら int main(int argc, char* argv[]) { ... return 0; } この return している 0 が終了ステータス。この整数値の下位 8bit がプロセスの終了時に親 (そのプロセスを起動したプロセス) にわたる。 終了ステータスの指定方法はいろいろある。C言語の場合 main 関数の戻り値以外にも exit 関数の引数でも指定できる。Ruby, Perl の場合、そもそも main 関数は無くて exit 関数に引数を与える方法だけがつかえる。 この値はシェル上で $? で参照できる。 % perl -e 'exit(0xdead)'; echo $? 173 % 慣例として、正常終了のときは 0 を返すことになっている。 % ls

    motemen
    motemen 2009/01/15
  • Just another Ruby porter, 2008-9-c

    ■ [Ruby] gemのパッケージを展開する Gem::Installer#unpackを使うと簡単です。 require "rubygems/installer" Gem::Installer.new("classx-0.0.4.gem").unpack("classx-0.0.4") コマンドラインのほうがもっと簡単。 % gem unpack classx-0.0.4.gem Unpacked gem: '/tmp/classx-0.0.4' % ls classx-0.0.4 ChangeLog README Rakefile bench doc example lib spec tasks 見てわかるとおり上はこっちから逆に導き出したもんなんだけど。 ■ [C] CSpec : Behavior-driven development in C これはどうだろうねえ。 Overv

    motemen
    motemen 2008/09/28
    ${^spec}
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    motemen
    motemen 2008/07/03
  • git-svnのサブコマンド補完関数(Zsh) - Hello, world! - s21g

    1  _git-svn () { 2  `git-svn --help | grep "^ \w" | sed "s/^ //" | sed "s/ .*//" | sed 's/^/ compadd /'` 3  } 4 5  compdef _git-svn git-svn

  • zsh の rehash が面倒だという話 - 兼雑記

    なんか shell function だの alias だのはこう、ああこれいらないなーと思った時に既に適用してしまった shell に対して unfunction だの unalias だのをするか、それとも zsh を再起動しなければならない、といったような理由であまり好きではないです。で、基的に ~/bin の下にどんどこつっこみます。 そのスタイルでやってて問題になるのは新しい実行ファイルを突っ込んだ時に必要になる rehash とかいうコマンドです。 bash とかは勝手に調べてくれるのに…! とか思いますが、 NFS とかそういう環境では前もって調べておいてくれているのは悪いことではないので怒らないことにします。 でもまぁ rehash とかタイプするのは面倒だなぁと考えていて、 ^L で画面を消去した時に同時に rehash してくれるくらいが丁度いい粒度じゃないかなぁと思

    zsh の rehash が面倒だという話 - 兼雑記
    motemen
    motemen 2008/07/03
  • git-svn 作業フロー unknownplace.org - 2008/02/19

    plagger レポジトリで作業するとする。svkとの比較つき。 まず git レポジトリ作成 git svn init -s http://svn.bulknews.net/repos/plagger/ plagger これで、plaggerってディレクトリにgitレポジトリができる。svk mirror的なものですね 次にsvnとデータをsyncさせる。 cd plagger git svn fetch これは svk sync 的なもので対象の変更をすべてtrackしてmerge情報とかを記録する。なので重い。体感では svk sync 以上。 ちなみに最初の init の代わりに clone とすると一気に fetch までしてくれる。 trunk で作業するよ (ここからが通常のワークフロー) git checkout trunk で trunk に移動。 svn が変更されてる

  • zblog - a blogging engine written in zsh

    zblog - zsh weblogging engine Everything needs a website, so zblog needs one as well. This page will remain rather minimal. Download a zblog tarball and read the included documentation, if you want to know more. Note: `zblog' is unmaintained software. I removed the download links below. I'm only keeping this site for historical reasons. I am not even using the software myself anymore. And you shou

    motemen
    motemen 2008/07/03
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    motemen
    motemen 2008/07/03
  • zshのチートシート - http://rubikitch.com/に移転しました

    extended_globは **/* とか以外にほとんど使わないので、いざ欲しいときに忘れてしまう。プロセス置換もしかり。ここでワンキーでチートシートの表示ができたら嬉しい。普段Rubyばかりでシェルスクリプトを書かないので、苦労すると思うけど、シェル関数で書いてみようかな。 やってみるとあっさりできた。以下を.zshrcに追加してC-M-hを押すと ~/zsh/cheat-sheet.conf が表示されるようになる。当然補完候補の表示同様編集中のコマンドラインは消えない! cheat-sheet () { zle -M "`cat ~/zsh/cheat-sheet.conf`" } zle -N cheat-sheet bindkey "^[^h" cheat-sheet こんな感じになる。 % ls *.o[ここでC-M-hを押すと] <(コマンドリスト) # コマンドの結果をフ

    zshのチートシート - http://rubikitch.com/に移転しました
    motemen
    motemen 2008/07/03
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    motemen
    motemen 2008/07/03
  • zsh でログイン時に screen を起動する方法

    zsh でログイン時に screen を起動する方法 2007-08-20-1: [Solaris] ~/.zlogin に以下を記述する。 if [ ! "$WINDOW" ]; then exec screen -S main -xRR fi ログイン直後にいつも screen を打っていたのですが、これで楽になりました。 - 追記 (2007-08-21) コメント欄で情報をいただいたように、他のホストにログインすると screen が二重起動する件ですが、以下のようにして対処できそうです。 if [ $TERM != "screen" ]; then exec screen -S main -xRR fi ただし、Solaris の場合は terminfo に screen の記述がないので上記設定ではうまくいきません。 結局メインで使うマシンのみに、一番上の設定をしてそれ以外のマ

  • ZSH - Reference Card

    motemen
    motemen 2008/07/03
  • 漢のzsh | コラム | エンタープライズ | マイコミジャーナル

    Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます

    motemen
    motemen 2008/07/03
  • zshのinfo の読書メモ

    これは zsh manual を読みながら書いたメモである。 僕には判りきっている部分とか、必要としない機能とか、意味が判らない場所とかは適当に読み飛しているので注意 1. The Z Shell Manual 1.1 Producing documentation from zsh.texi html 版マニュアルは http://zsh.sunsite.dk/Doc/ にある 2. Introduction zsh は、スタンダードなシェルの中では ksh に最も近い。 2.1 Author zsh をはじめたのは Paul Falstad <pf@zsh.org>. 現在は zsh-workers mailing list <zsh-workers@sunsite.dk> でメンテされていて、コーディネータは Peter Stephenson <pws@zsh.org>. 彼へのコン

  • 漢のzshに乗り換えた時にアッーってなるコト - 技術メモ帳

    男の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という文

  • 技術メモ帳: [unix]複数のファイルの名前をまとめて変更する

    複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm

    motemen
    motemen 2008/07/03
    zmv, file-rename