タグ

zshに関するmizdraのブックマーク (10)

  • GitHub Actions で zsh の起動時間を定点観測する

    概要 zsh に限らず各シェルはカスタマイズが可能ですが、カスタマイズの仕方によってはシェルの起動が遅くなることがあります。シェルは毎日起動するため、起動時間の劣化に気付きにくいですが、劣化したときに知らずに浪費してしまう時間は大きくなりがちです。 そのため、シェルの起動時間を定点観測することは日々の時間の浪費を防ぐために効果があります。 今回は GitHub Actions でこれを行う方法を紹介します。 zsh の起動時間の計測 zsh の起動速度はの計測方法は適当にググれば出てくる通り、次のコマンドを実行することで行なえます。 今回はパースのしやすさを考えて、--format オプションが使える GNU の time コマンドを使用しました。macOS において GNU の time コマンドは brew で gnu-time をインストールすれば gtime コマンドとして使用する

    GitHub Actions で zsh の起動時間を定点観測する
    mizdra
    mizdra 2021/11/23
    便利そう
  • How to check if commands enabled in POSIX shell script

    #posixismadvent この記事はPOSIX原理主義Advent Calendarの17日目だ。 POSIX原理主義を実践していくうえで,POSIX規格外のコマンドを使う場合は,交換可能性を担保しなければならない。その際にコマンドが利用可能かどうかの判定が必要となる。そこで,POSIXに準拠したコマンドの利用可能判定方法を解説する。 結論としては,用途に応じて以下の2コマンドを利用すればよい。 command -v hoge >/dev/null && echo "OK" hash hoge 2>/dev/null && echo "alias OK"コマンドが存在するかどうかを判定するコマンドとしてwhichコマンドが存在する。しかし,このwhichコマンドはPOSIXで未定義なので,whichコマンド自体が常に使えると保証できない。 実はコマンドの有無を判定できるコマンドはいく

    How to check if commands enabled in POSIX shell script
    mizdra
    mizdra 2021/06/08
    まとまっていてありがたい
  • Mac の zsh で PATH を zshenv に設定するとハマる - 理系学生日記

    zsh だと PATH 設定を $ZDOTDIR/.zshrc で定義していたんですが、調子にのって .zshenv に定義するようにしたら PATH の挙動がおかしくなりました。 期待してたのは以下のような順番だったのですが、実際には /usr/local/bin、/usr/bin、/bin、… が先に来る。 $ echo $PATH | tr ':' '\n' /usr/local/opt/coreutils/libexec/gnubin /usr/local/opt/findutils/bin /Users/kiririmode/.rbenv/shims /Users/kiririmode/.plenv/shims /Users/kiririmode/.pyenv/shims /Users/kiririmode/.plenv/bin /Users/kiririmode/.rbenv/

    Mac の zsh で PATH を zshenv に設定するとハマる - 理系学生日記
    mizdra
    mizdra 2021/06/08
    ハマって困っていたので助かる
  • Zshテクニック: 入力中のコマンド列の最後に出現する引数のdirname部だけ再入力する - Lambdaカクテル

    こういうことがやりたいことがある: # ↓全く同じディレクトリまでサクッと入力してほしい $ コマンド /foo/bar/hoge/piyo.txt /foo/bar/hoge/qux.txt どこか別のディレクトリにあるファイルを,同じディレクトリのどこかに移動したりコピーしたり,といったことはけっこう頻繁に発生する。 しかしながら毎回これをやるにはパスを毎回入力しなければならず困っていた。 !#$:h これを解消するのが!#$:hである。例えば以下のようにプロンプトで入力しているとき(|はカーソル): $ cp /foo/bar/hoge/piyo.txt | !#$:hと入力してタブを入力すると,直前に入力していた引数のディレクトリまでを入力してくれる。 $ cp /foo/bar/hoge/piyo.txt /foo/bar/hoge/| これはヒストリ展開機能を使って実現されてい

    Zshテクニック: 入力中のコマンド列の最後に出現する引数のdirname部だけ再入力する - Lambdaカクテル
    mizdra
    mizdra 2019/10/10
  • .zshenv で PATH を管理したら罠にハマった - 大学生からの Web 開発

    Spacemacs を起動すると、.zshrc で PATH の設定をするな、と怒られた。ので、.zshenv に記述を移すと、今度は不具合が起きた。emacs を以下のページの設定をして呼び出すと ~/bin/emacs を実行していたのが、 .zshenv に PATH を移したことによって /usr/local/bin/emacs を呼び出すようになってしまった。 karur4n.hatenablog.com 解決したのでメモする。 原因の特定 $ echo $PATH をすると、/usr/local/bin が ~/bin より優先的に読み込まれていた。 なので、試しに .zshenv に PATH="$HOME/bin" としてみても、 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/karur4n/bin と出力された。

    .zshenv で PATH を管理したら罠にハマった - 大学生からの Web 開発
    mizdra
    mizdra 2019/10/08
  • vim も zsh も捨てた - AnyType

    プロジェクト移行期に入って暇な時間ができたので、開発環境をリフレッシュすることにした。vim や zsh の設定が少しずつ壊れてきていたのだった。 .vimrc や .zshrc を眺めてみると、かつて意識が高かった頃に施した設定が何のためのものだったのか忘れてしまっていた。別人が書いたスパゲティコードのようだった。 また vim や zsh の設定を検索して理解するべきなんだろうか。ここで覚えた知識はまたすぐに忘れてしまうんじゃないだろうか。設定が洗練されるほどに、それを更新する機会もまた少なくなってくる。設定が必要になるきっかけは忘れた頃にやってくるもんだ。 やり方を根的に見直す時期なのかもしれない。新しいツールもいまなら選択できる。 まず、vim から atom に移行した。git のコミットメッセージやちょっとしたファイルの修正ではまだ vim を使うものの、細かい設定が必要にな

    vim も zsh も捨てた - AnyType
    mizdra
    mizdra 2017/08/18
  • oh-my-zshのテーマに関するTips - Qiita

    どんなテーマがあるのか調べる 一番簡単なのはoh-my-zshのwikiのthemesページを見るのが良いと思いますが、このページには全てのテーマが紹介されているわけではありませんし、自分の使ってるカラースキームだとどんな感じに表示されるのかが分かりません。 というわけでそういう問題を解決するためにtheme_chooser.shというのがあります。 ターミナルでtheme_chooser.sh -sを実行するとこんな感じに全てのテーマのプレビューをしてくれます。 ここで注意点があって $ZSHをexportしておく必要がある。 環境に依存するテーマがある(上記スクショだとrvmに依存してるっぽいけど私が入れてないのでエラーになってるのがありますね) $RPROMPT(右端に表示されるプロンプト)が正しい位置に表示されない。 $RPROMPTが手前の設定を引き継いでしまう。 後ろ2つは↓こ

    oh-my-zshのテーマに関するTips - Qiita
  • zshオプション一覧 (zsh 5.0.7) - vorfee's Tech Blog

    すべてのzshオプションを記載したファイルを作成したので、現時点でのその中身を公開。 .zoptionsファイル # vim: ft=zsh fenc=utf-8 #---- Zsh Option Settings File ----- # Zshオプション設定ファイル # # Uncomment to apply changes. # アンコメントすることで機能を有効化(無効化)します # # Last Modified # vorfee 2015/03/12 (zsh 5.0.7) #----------------------------------- # Changing Directories # - ディレクトリ移動 - #----------------------------------- # コマンド名が無い場合はその名前でcdを試みる set -o AUTO_CD #

    zshオプション一覧 (zsh 5.0.7) - vorfee's Tech Blog
  • zshでpecoと連携するためのanyframeというプラグインを作った - Qiita

    これは何? zshの操作で、pecoとかpercolとか、Anything風インターフェースで選択するやつがよく使われてる。これを使うと、例えばコマンドライン履歴からインクリメンタルに検索して、それを実行、とかできるようになる。 でも、pecoとかpercolはシェルとは関係なくて、単に「インクリメンタルに絞り込む」ってところだけしかやってくれない。それだけでは役に立たなくて、「選んだ結果を実行する」とかのシェルの処理が必要になる。 それで、そういうシェルの処理を自分で書きたくない人向けにanyframeというのを作った。 https://github.com/mollifier/anyframe これはzsh用のプラグインで、これを使うと自分でシェルの関数を書かなくても、キーバインドとかaliasを設定するだけでpeco/percolの便利なやつをすぐ使えるようになる。 特徴 普通の人が

    zshでpecoと連携するためのanyframeというプラグインを作った - Qiita
  • Zsh 入門者のための超速設定ガイド - Qiita

    はじめに このガイドでは、はじめて Zsh を使う人や Zsh の便利な使い方を知らない人に向けて、いくつかの便利な設定と操作方法を紹介します。また、 Zsh についての疑問を素早く解決できるよう、マニュアルの調べ方や他のドキュメントへのリンクも盛り込んであります。 このガイドでカバーしきれていない設定や分かりやすいドキュメントをご存知でしたら、ぜひ編集リクエストやコメントでお知らせください。 設定ファイル ここでは主に普段のキー入力数を大幅に減らせるような設定を紹介します。 .zshrc ~/.zshrc は Zsh のインタラクティブシェル(ユーザーがコマンドを入力する画面)が起動した際に読み込まれる設定ファイルです。 Zsh スクリプトを実行したり、 zsh -c 'command...' でコマンドを実行したりしたときには読み込まれません。このファイルには主に Zsh の操作に関す

    Zsh 入門者のための超速設定ガイド - Qiita
  • 1