fzf + sqliteを使ってChromeの閲覧履歴をインクリメンタルサーチする
- POSTS
JSL (日本システム技研) Advent Calendar 2018 - Qiita の12日目の記事です。
モチベーション Chromeの履歴が見辛いのでいい感じに表示したい 履歴を見やすくするプラグインはいくつかあるが、ターミナルから「履歴閲覧→開く」ができるとシームレスにWebブラウジングに移れそう なので今回は、sqliteを使ってユーザのローカルに保存してある履歴ファイルを閲覧 + fzfを使ってインクリメンタルサーチ するコマンドを実現するための方法を書く。
最終的にやったこと fzfの公式サンプルに載ってた。
Examples · junegunn/fzf Wiki
サンプルに沿って、パスの通った場所に以下のようなコマンドを置きました。名前はChromeHistoryで ch としました。
#!/usr/bin/env zsh ch() { local cols sep google_history open cols=$(( COLUMNS / 3 )) sep='{::}' if [ "$(uname)" = "Darwin" ]; then google_history="$HOME/Library/Application Support/Google/Chrome/Default/History" open=open else google_history="$HOME/.config/google-chrome/Default/History" open=xdg-open fi cp -f "$google_history" /tmp/h sqlite3 -separator $sep /tmp/h \ "select substr(title, 1, $cols), url from urls order by last_visit_time desc" | awk -F $sep '{printf "%-'$cols's \x1b[36m%s\x1b[m\n", $1, $2}' | fzf --ansi --multi --preview-window down:1 | sed 's#.