2026-06-05追記:「ripgrepの検索結果をCotEditorで開く補助スクリプト」を追記
2026-05-16修正:CotEditor、macOSのバージョンによるものか、いつの間にか動作しなくなっていたので、全面的に作り替えました。
指定した文字列を含むテキストファイルを、特定のフォルダ内から検索。テキストエディタで検索結果を開き、該当ファイルの該当行を一発で開けるようにしてみました。 テキスト検索ツールとしてはripgrep、テキストエディタはCotEditor(macOS用)を使っています。
事前準備
ripgrepのインストール
Homebrewをすでに使っているなら、ターミナルから
brew install ripgrepと入力するだけ。
テキストエディタCotEditorのインストール
CotEditorは、Mac App Storeからインストールできる。
ターミナルからCotEditorを起動できるようにする
CotEditorには「cot」というコマンドラインツールが用意されている。ターミナルから
ln -s /Applications/CotEditor.app/Contents/SharedSupport/bin/cot /usr/local/bin/cotと入力してシンボリックリンクを作成する。
CotEditor用のスクリプトをインストール
下記のスクリプトを、macOS搭載の「スクリプトエディタ」にコピペして、適当な名前を付けてスクリプト形式(.scpt)で、CotEditorのスクリプトフォルダ(“~/Library/Application Scripts/com.coteditor.CotEditor”)に保存。(※注:CotEditorから.applescript形式のまま実行すると、うまく動作しない。必ず.scpt形式として保存して使うこと)。
使い方
ターミナルからripgrepで検索を実行
ターミルから rg -n -e 検索したいパターン 検索対象フォルダのフルパス | cot と入力する。 フルパスを手入力するのは面倒くさいけど、Finderから対象フォルダをターミナルにドラッグ&ドロップすると簡単に入力できる。
検索結果がCotEditorで開かれる。

CotEditor上からスクリプトを実行
開きたいファイル名のところにカーソルを移動し、スクリプトメニューから「rg_tagjump.scpt」を実行。
該当ファイルの該当行がCotEditorで開かれる。
ripgrepの検索結果をCotEditorで開く補助スクリプト
ターミナルから毎回コマンドを入力するのは面倒なので、次のようなシェルスクリプトを rgcot などの名前で保存しておくと便利。
#!/bin/shset -eu
usage() { echo "Usage: ${0##*/} [-r] PATTERN [PATH]" >&2 echo " default: fixed string search" >&2 echo " -r : regular expression search" >&2 exit 2}
regex=0
while getopts "rh" opt; do case "$opt" in r) regex=1 ;; h) usage ;; *) usage ;; esacdoneshift $((OPTIND - 1))
[ "$#" -ge 1 ] || usage
pattern=$1target=${2:-.}abs_path=$(cd "$target" && pwd -P)
if [ "$regex" -eq 1 ]; then rg --line-number --no-heading --color=never -e "$pattern" "$abs_path" | cot -nelse rg --line-number --no-heading --color=never -F -e "$pattern" "$abs_path" | cot -nfi保存したら実行権限を付ける。
chmod +x rgcotPATH の通った場所に置いておけば、次のように使える。
rgcot "検索語"rgcot "検索語" ~/Documentsrgcot -r 'foo|bar'デフォルトでは -F を付けた固定文字列検索にしている。普段の検索では、. や * や [ などを正規表現として解釈されるより、この方が事故が少ない。正規表現を使いたいときだけ -r を付ける。
検索語に空白や記号を含む場合はクォートしておく。通常検索ならダブルクォート、正規表現ならシングルクォートにしておくと扱いやすい。
rgcot "人工 光合成"rgcot -r '第[0-9]+回'
コメント