#author("2024-01-26T14:23:34+09:00","default:nobuoki","nobuoki") * rg(ripgrep) のファイル名にWindowsのパスを追加する [#f76bbfb4] #author("2024-01-26T17:23:05+09:00","default:nobuoki","nobuoki") * ripgrep のファイル名出力部分に Windows のパス表記を追加する [#f76bbfb4] #prism(bash){{{ $ 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のパスをコピーしたら + Win-R(「ファイル名を指定して実行」ダイアログを表示) + Ctrl-V (「名前」欄にファイル名をペースト) + Enter たったの3ストロークでOK * やり方 [#c92d1b3f] rg のラッパー関数を作ります。bash依存です。 #prism(bash){{{ rg(){ color='\033[0;36m' color_off='\033[0m' command rg -p "$@" | while read -r line; do if [[ $line =~ ^[\[$'\x1b'0-9m]+/ ]]; then # shellcheck disable=SC2001 p_wsl="$(sed -E 's/\x1b\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[mGK]//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 } }}}