CLI ツールボックス:検索、閲覧、差分確認
このページの目次
範囲を絞り、内容を確認してから操作する。以下はプロジェクトルートから実行する例で、検索やプレビューはファイルを書き換えない。
名前と内容を分けて検索する
拡張子で TOML ファイルを列挙する。
検索対象となるパスを glob で選ぶ方法もある。
その内容からリテラル文字列を検索する。
-n は行番号、-F は通常文字列、-g はパス条件である。正規表現が必要な場合だけ -F を外す。
見つからないときは範囲を確認する
rg は通常、隠しパス、ignore 対象、バイナリ内容を除外する。fd にも似た除外があるが、引数は異なる。
| 目的 | rg | fd |
|---|---|---|
| 隠しパスを含める | --hidden | -H |
| ignore を無視する | --no-ignore | -I |
| 拡張子指定 | -g '*.rs' / -t rust | -e rs |
| 前後の内容 | -C 3 | 名前検索には該当しない |
Git の内部を除外しながら範囲を広げる例:
生成物やローカル設定も増えるため、先にディレクトリや拡張子を絞る。rg の終了コード 1 は一致なし、2 はエラーである。ripgrep ガイド
文脈と置換プレビュー
src は実在するディレクトリを指定する。前後の行から、同じ名前でも用途が違わないか判断する。
-r は出力上の置換であり、ファイルへ保存しない。実際の一括変更前にコメント、文字列、生成物、別の同名シンボルを区別する。コードの名前変更は言語機能を使い、Git diff で確認する。
ファイルとツリーを見る
ページャ、装飾、色を明示的に無効にするとパイプ出力が予測しやすい。既定動作は端末判定や個人設定に影響される。
深さで出力量を制限する。Git ignore の適用は --git-ignore で指定し、ツリー表示だけで保証されるとは考えない。
ファイルごとの処理には fd の -x を使える。
これは行数を読む操作である。書き換えコマンドへ交換する前に対象引数を表示して確認する。整形された ls 出力からファイル名を組み立てない。
Git の差分表示
delta 導入後に Git 設定へ追加する。
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
line-numbers = true
[merge]
conflictStyle = zdiff3
[diff]
colorMoved = default
delta は表示を変え、保存された差分は変えない。zdiff3 は共通祖先を衝突表示に含め、colorMoved は移動ブロックの手掛かりを与える。移動後の意味が同じかは別途確認する。
未ステージは git diff、ステージ済みは git diff --cached。表示がおかしければ git --no-pager diff で切り分ける。Git 手順書
ディレクトリ履歴とプロジェクト命令
zoxide を Zsh へ初期化すると、z project は履歴から移動先を選び、zi は対話選択する。同名プロジェクトがあるときは pwd でも確認する。zoxide
既存 Cargo プロジェクトの justfile 例:
:
:
just --list で一覧、just test で実行する。just 自体は時刻から再ビルドを判定せず、増分構築は Cargo が担当する。just マニュアル
小さな確認課題
練習リポジトリで通常、隠し、ignore 対象の三ファイルに同じ文字列を入れる。標準 rg、--hidden、--no-ignore を比較し、置換プレビュー後にファイルが変わっていないことを確かめる。各結果を説明できてから大きなリポジトリへ適用する。