--
    --.--

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加
    2015
    06.11

    zshの設定をいじってみた

    本業が忙しくてなかなか更新できず…
    申し訳ないです^-^;

    ベイスターズも交流戦に入って投打共に不調気味。
    気がつけば交流戦最下位になってるしorz
    苦しい時でも勝率5割くらいでふんばってくれー!



    ターミナルで使うシェルをbashからzshに変更してみましたが、
    bashに戻る気配なし。
    すっかりzshに落ち着きました。

    今回はzshに最近追加した設定をご紹介します。

    (1) 任意のコマンドをエイリアスとして登録
    (2) 入力の履歴を保存(重複なしで。一部コマンドは保存しない)
    (3) zshの設定ファイルの保存先を指定(次回ご紹介)
    (4) 「コマンド終了時に通知」をカスタマイズ(そのまた次にご紹介)


    いずれも.zshrcに設定を書き込んでいます。

    長いコマンドをエイリアスで短縮登録


    Homebrewの基本的なアップデート+チェックコマンドを
    一発でやらせようとすると結構長い。
    brew update && brew upgrade --all && brew doctor && brew doctor
    (今年の頭まではbrew upgradeですべてのフォーミュラをアップグレードしてくれていましたが
     今後は--allオプションをつけないとできなくなるらしいです)

    良い機会なので、これをbrewupdという短縮コマンドとして登録しておきます。

    .zshrcに以下を追加
    alias brewupd='brew update && brew upgrade --all && brew doctor'
    今後はbrewupdと打つだけで済みます^-^

    ついでに、不調時に実行するコマンドも登録しときました。
    alias brewrepair1='sudo chown $USER `brew --prefix` && chgrp admin `brew --prefix` && chmod 775 `brew --prefix`'
    alias brewrepair2='cd `brew --prefix` && git fetch origin && git reset --hard origin/master'


    コマンド履歴の保存・重複や指定したコマンドは保存しない設定


    入力したコマンドを履歴(histroy)として保存・再利用できると便利です。
    コマンド入力時に矢印キーの上や下を押すと過去の履歴を出せます。

    つまり、
    「さっき実行したコマンド、もう一度実行したい」
    という時に、もう一度コマンドを1から入力しなくても
    矢印キー(上)を押していくだけで入力してくれるようになります!
    (うまく伝わってるかな^-^;; 試してもらうのが一番分かりやすいです)


    特に設定しなくてもメモリ上に履歴が保存されるようですが
    以下のように履歴をファイルに保存する設定にしておくと、
    ターミナル終了後も履歴が残ります。

    .zshrcに以下を追加
    # 履歴ファイルの保存先
    # 通常はHISTFILE=$HOME/.zsh_history
    HISTFILE=$ZDOTDIR/.zsh_history
    # 保存する履歴数の上限
    SAVEHIST=100000
    # 履歴のサイズの上限(単位=行)
    HISTSIZE=100000



    このままで同じコマンドを使うと、
    何度も同じコマンドが履歴に保存されてうっとおしいです^-^;
    同じコマンドを使っても最後の1回だけが履歴に保存されるようにするには
    以下の記述を入れておきます。

    .zshrcに以下を追加
    ### http://qiita.com/uasi/items/c4288dd835a65eb9d709
    # 入力したコマンドがすでにコマンド履歴に含まれる場合、履歴から古いほうのコマンドを削除する
    # コマンド履歴とは今まで入力したコマンドの一覧のことで、上下キーでたどれる
    setopt hist_ignore_all_dups



    さらに一歩進めて、
    「履歴に残すまでもない単純なコマンドを履歴に保存しない」
    という方法もありました!

    参考:というか、そのまんま使わせてもらっています^-^
    zshで特定のコマンドをヒストリに追加しない条件を柔軟に設定する - mollifier delta blog

    .zshrcに以下を追加
    ### zshaddhistory関数に条件指定を仕込んで履歴を限定
    # http://mollifier.hatenablog.com/entry/20090728/p1

    zzshaddhistory() {
    # コマンドライン全体から改行を除去したもの
    local line=${1%%$'\n'}
    # 1つ目のコマンド
    local cmd=${line%% *}
    # 5文字以上、l,ls,la,ll, c, cd, m,man以外のものだけをヒストリに追加する
    [[ ${#line} -ge 5
    && ${cmd} != (l|l[sal])
    && ${cmd} != (c|cd)
    && ${cmd} != (m|man)
    ]]
    }


    コマンド入力の手間が省けていい感じです♪
    関連記事

    このエントリーをはてなブックマークに追加
    トラックバックURL
    http://w6o6n.blog.fc2.com/tb.php/155-504b15f1
    トラックバック
    コメント
    管理者にだけ表示を許可する
     
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。