rg(ripgrep) のファイル名にWindowsのパスを追加する

$ rg -F 'example.com' ~/.ssh ~/first/*.md
C:\Users\HOGE\AppData\Roaming\first\wifi.md  ★★★追加★★★
/home/HOGE/first/wifi.md
73:hoge@example.com

\\wsl.localhost\Ubuntu\home\HOGE\.ssh\config  ★★★追加★★★
/home/HOGE/.ssh/config
89:  HostName     a.example.com
94:  HostName     o.example.com
98:  HostName     p.example.com

rgでヒットしたファイルをWindowsの既定のアプリで開きたいときに、
マウスでターミナルに表示されたWindowsのパスをコピーしてから

1. Win-R(「ファイル名を指定して実行」ダイアログを表示)
1. Ctrl-V (「名前」欄にファイル名をペースト)
1. Enter

これだけでOK

やり方

rg のラッパー関数を作ります。bash依存です。

rg ()
{
    [ -n "$DEBUG" ] && set -x;
    color='\033[0;36m';
    color_off='\033[0m';
    command rg -p "$@" | while read -r line; do
        if [[ $line =~ ^[\['-9m]+/ ]]; then
            p_wsl="$(sed 's/\x1B\[[0-9;]*[JKmsu]//g' <<<"$line")";
            p_wsl="$(readlink -f "$p_wsl")";
            p_windows="$(wslpath -w "$p_wsl")";
            printf '%b%s%b\n' "$color" "$p_windows" "$color_off";
        fi;
        echo "$line";
    done;
    set +x
}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS