タグ

ブックマーク / qiita.com/mollifier (11)

  • なぜzshを使うのか - Qiita

    さて、われわれは毎日シェルを使っているわけですが、みなさんはどうやって今のシェルを選んだのでしょうか。 初期設定のままとか、なんとなくとかいう理由の人もいるでしょう。逆に、色々とシェルを渡り歩いて今の結果に行き着いたという人もいるでしょう。 僕の場合、初めはbashを使っていました。どのシェルを使ってもだいたい同じことができるだろうという考えのもと、普通にデフォルトのログインシェルを使っていました。特に困ることもなく、使いこなすということもなく、なんとなく使っていました。 ある日、他の人が使っているtcshの設定ファイルを見る機会がありました。確かそのときの職場に伝わっていた秘伝のtcshrcだったと思います。それはaliasやらなんやら激しくカスタマイズされていました。「おお、こういう世界もあるのか」と、感心しました。 しかし、それを真似しようと調べてみたところ、どうやらtcshには欠陥

    なぜzshを使うのか - Qiita
    fumikony
    fumikony 2015/12/02
  • zshのオプション設定の分かりにくいところまとめ - Qiita

    zshには「オプション」というものがある。オプションとは、zshの動作を切り替えるためのオン/オフのフラグのこと。zshを使ってる人は何かしらオプションを設定して、使いやすいようにカスタマイズしてると思う。このオプションを設定したり、設定した値を確認する方法がちょっと分かりにくいので、ここでまとめておく。 オプションを有効にする オプションを有効にするには、setoptコマンドを使う。これは次のように、setopt <オプション名>という形で使う。

    zshのオプション設定の分かりにくいところまとめ - Qiita
  • zshで簡単にコマンドライン オプションを解析する - Qiita

    シェルスクリプトでコマンドライン引数をオプションとして解析したいときは、getoptsを使うのが一般的なやり方だ。 でも、getoptsはGNUスタイルの長いオプションに対応していないので、--helpとかのオプションを受け付けれないという欠点がある。そんなときでも、zshならzparseoptsというコマンドを使えば長いオプションでも解析できるので紹介する。 基パターン まずは一番簡単なパターンとして、次の3つのオプションを解析する例を紹介する(mvコマンドのオプションをイメージしている)。どのオプションも引数は取らない。 -v --help --version このオプションをパースするには、zparseoptsというzshの組み込みコマンドを使って、次のように書く。 #!/bin/zsh local -A opthash zparseopts -D -A opthash -- -h

    zshで簡単にコマンドライン オプションを解析する - Qiita
  • zsh の vcs_info に独自の処理を追加して stash 数とか push していない件数とか何でも表示する - Qiita

    zsh で Git 使ってる人はプロンプトにブランチ名とかを表示してる人も多いと思う。 zsh に標準で入ってる vcs_info っていうのを使うとだいたいいい感じにできるんだけど、できないことも当然ある。 例えば stash した数の表示には対応していないので、自分で無理矢理な感じで Git コマンドを呼び出してプロンプトに表示してる人もいると思う。 でも zsh 4.3.11 ぐらいから vcs_info に Hooks というのが追加されて、元の機能に自分で処理を追加できるようになってる。これを使うと好きなようにカスタマイズできるようになるので紹介する。 この記事でできるようになること こんなことがプロンプトに表示できるようになる。 使用しているバージョン管理システムの名前(svn, git, hg, ...) 現在のブランチ名 マージ失敗のエラー表示 さらに Git の場合は以下

    zsh の vcs_info に独自の処理を追加して stash 数とか push していない件数とか何でも表示する - Qiita
  • ghq コマンドの zsh 補完ファイルを修正したので、その過程を解説する - Qiita

    初めに ghq というコマンドがある。GitHub のリポジトリをクローンしていい感じに管理するコマンドだ。 これには zsh 補完ファイルも含まれているんだけど、補完できないオプションあったりして、いまいちだった。なのでそれを直すことにした。 何日か前に修正して Pull Request を送ったら無事取り込まれたので、どういう感じで修正したのか、その過程を紹介してみる。補完関数の書き方が分からない人でも雰囲気は伝わると思うので参考にしてみてほしい。 ちなみに、ghq 自体の詳しい使い方は作った人の紹介記事を見るのが良いと思う。 どこを直すか まず、ghq コマンドの基的な使い方はこんな感じ。 # GitHub の mollifier/config リポジトリをローカルに clone する % ghq get mollifier/config # clone したリポジトリを一覧表示す

    ghq コマンドの zsh 補完ファイルを修正したので、その過程を解説する - Qiita
  • zshの外部プラグインまとめ - Qiita

    zshは標準の機能を使うだけでも便利だけど、それでも足りないときはいろいろなプラグインを追加して拡張できる。でも、プラグイン一覧はどこかにまとまっているわけではない。特に、zsh体に標準で含まれているプラグインはman zshcontribを見ればわかるけど、それ以外のユーザが独自に作ったプラグインはGoogle検索とかで地道に探すしかない。 そこで、zshで使用できる標準で含まれていないプラグインをまとめて紹介する。これを参考にして、zshをもっと便利にしてください! ディレクトリ移動 名前 概要 参考記事

    zshの外部プラグインまとめ - Qiita
  • zshでhook関数を登録する - Qiita

    zshでは、何か操作を行ったときに呼び出されるhook関数を登録できる。これを使うと、例えば「コマンドを実行するたびにこの関数を実行する」ということができるようになる。もうすでに使ってる人も多いと思うけど、ここでその使い方をまとめておく。 hook関数を登録するには、add-zsh-hook関数を使う。使い方としては、「add-zsh-hook <hook名> <関数名>」という形で呼び出す。「hook名」はどういうときに関数が呼び出されるかというイベント種別を表す文字列で、詳しくは後で説明する。 例 次の例ではprecmdのときにprecmd_function1という関数を呼び出すように登録している。

    zshでhook関数を登録する - Qiita
    fumikony
    fumikony 2014/12/16
  • zshのコマンドラインを任意のテキストエディタで編集する - Qiita

    zshでは現在のコマンドラインを任意のテキストエディタで編集できるので紹介する。 設定 次の設定を.zshrcに書いておく。 autoload -Uz edit-command-line zle -N edit-command-line bindkey '^xe' edit-command-line 最後の^xeのところは僕が使っている例で、好きなように変えてOK。 使い方 さっきの例の設定の場合、^xe(Ctrl+xのあとにCtrlを離してe)でエディタが起動する。起動したエディタで実行したいコマンドを書いて保存、終了、で元のコマンドラインに戻る。後は普通にEnterを押すと実行される。 複数行のコマンドを実行したいときもそのままエディタで書ける。 もちろん、コマンドラインに途中まで入力済みの状態で起動すると、その内容が始めから入った状態でエディタが起動する。編集をキャンセルして元の状態

    zshのコマンドラインを任意のテキストエディタで編集する - Qiita
    fumikony
    fumikony 2014/12/16
  • zshの補完ファイルの中で呼ばれているコマンドを差し替えてカスタマイズする - Qiita

    % cap -T cap deploy # Deploy a new release cap deploy:check # Check required files and directories exist cap deploy:check:directories # Check shared and release directories exist (...以下省略...) _capファイルの中では、cap -Tを呼び出してタスク一覧を取得して、それを元に補完候補を作成しています。capがグローバルにインストールされているときはこれで問題ないのですが、bundle installでインストールしているときはcap -Tを実行してもエラーで実行できません(bundle exec cap -Tとしないと実行できません)。そのために補完候補が作成できていなかったのです。 どうやって対応する

    zshの補完ファイルの中で呼ばれているコマンドを差し替えてカスタマイズする - Qiita
    fumikony
    fumikony 2014/12/02
    "_call_programは、補完関数から呼び出す外部コマンドを差し替え出来るようにするための仕組み"
  • シェルスクリプトのオプション設計ガイドライン - Qiita

    僕はコマンドラインで使うシェルスクリプトを書くことがけっこうあるんだけど、インターフェイスというか呼び出し方はとても大事だと思ってるので、そこにわりと時間をかけて考えるようにしてる。実装はいつでも変更できるけど呼び出し方を変えた時は利用者にも変更を強いるので、できれば最初から良い設計で作りたいと思っている。 そこで、僕がシェルスクリプトのオプションとか引数とかの仕様を決める上で注意していることをまとめてみた。シェルスクリプトや、その他コマンドラインのツールを作るときに参考にしてほしい。 シェルの種類は bash や zsh を想定してるけど、実装によらない話なのでどんなシェルでも使えると思う。 エラーの時に Usage (使い方ヘルプメッセージ)を表示するのはやめる エラーになった時に Usage (使い方ヘルプメッセージ) を表示するスクリプトがあるけど、やめたほうがいいと思う。例えばこ

    シェルスクリプトのオプション設計ガイドライン - Qiita
  • zsh で path にディレクトリを追加するときは (N-/) を付けよう - Qiita

    これでも間違いというわけではないんだけど、追加するディレクトリが存在しない場合も path に追加されて、結果として無駄なディレクトリが含まれている状態になってしまう。あんまりうれしくない。 でも zsh にはちゃんとそれを防ぐ方法があって、ディレクトリ名の後ろに (N-/) を付ければうまく解決できる。

    zsh で path にディレクトリを追加するときは (N-/) を付けよう - Qiita
    fumikony
    fumikony 2014/03/30
  • 1