2025-03-25

  • 以下の三つについて紹介しつつ、ぼくの信じる主張をする
    • how to design programs
    • a philosophy of software design
    • di: これについては良い書籍を思いつかなかった、気持ちは以下からえている
      • インターフェース設計
      • unixというかパイプ、gatherじゃないけどあのschemeの書籍に書いてあったアレみたいな原則
      • mock
      • 逆数学
      • 取り回しやすい、仮説と結論の関連付けをする含意
      • effect system
      • type class

設定ファイルを一発で開くコマンド

fishで設定ファイルを一発で開くコマンドを書いた。導入したてのツールだとこまめに設定ファイルを編集したい。わざわざ.confgまで行ってあれこれするのが面倒なので、このコマンドを使うと幸せ。

function conf  --description 'この関数にハードコードした設定ファイル一覧からをfzfで選択してEDITORで開く'
    set -q EDITOR; or set EDITOR vim

    # パスはfishの組み込みによって解釈される
    # 相対パスに解釈される場合はXDG_CONFIG_HOMEを常に基点として扱う
    set -l configs \
        'fish/config.fish' \
        'fish/functions/conf.fish' \
        '~/.local/fish/init.fish.secret' \
        'ghostty/config' \
        'git/config' \
        'nvim/init.lua'

    # 名前一覧をfzfで表示
    set -l selected_path (
        printf '%s\n' $configs | fzf --prompt="Edit config> "
    )

    test -n "$selected_path"; or return

    # パス展開(~など対応)
    # https://fishshell.com/docs/current/cmds/path.html#normalize-subcommand
    set selected_path (path normalize "$selected_path")

    # 絶対パスでないならXDG_CONFIG_HOMEを前置
    if not string match -q --regex '^/' $selected_path
        set selected_path "$XDG_CONFIG_HOME/$selected_path"
    end

    # ファイルの存在確認をしてエディターを起動
    if test -f "$selected_path"
        $EDITOR "$selected_path"
    else
        echo "Config file not found: $selected_path"
        return 1
    end
end
< 2025-03-242025-03-31 >