使用Emacs作为全局启动器

其实 Safari 的历史记录也很方便查询,是个 SQLite。

cp ~/Library/Safari/History.db /tmp/h && sqlite3 /tmp/h "select json_object('items', json_group_array(json_object('quicklookurl', url, 'uid', title, 'title', title, 'arg', url))) as json_result from (select v.title, i.url, i.visit_count_score from history_items i join history_visits v on (v.history_item = i.id and v.title LIKE '%{query}%') group by v.title)"

我试试加上它。不过通过最近使用。感觉浏览器历史记录好像用处不大。我基本上都用来打开不小心误关了的窗口。

我也是差不多的需求,有时是误关找回,有时是看过了没做笔记,然后去历史记录里翻翻。

Safari 标题栏输入框跟其他 text field 不一样,常年卡,再加上用触控板点选历史记录也是差不多的毛病,常年卡,Safari 好多年都改不掉这俩毛病,我看了好多用各种语言写的查 Safari 历史记录的 Alfred Workflow,唯有这个是代码极简、无依赖、查询快的。

SQLite yyds!

firefox 我也想做到这个东西,但是存在一个问题就是, firefox 打开后这个数据库是加排他锁的,根本不能读取。。。

chrome 也是会加锁的。常规的做法是,复制一份出来。从复制的db查询。

Alfred Workflow 查询 Chrome 用的是这个命令

{query}
cp -f ~/Library/Application\ Support/Google/Chrome/Default/History /tmp/ch
sqlite3 /tmp/ch "select json_object('items', json_group_array(json_object('quicklookurl', url, 'uid', title, 'title', title, 'arg', url))) as json_result from (SELECT url, title, visit_count FROM urls WHERE title LIKE '%{query}%' ORDER BY visit_count)"

补上在 21 楼中的查询 Safari 历史记录的 Alfred Workflow:

恩,核心逻辑基本都是把历史记录的 db 复制一份,然后通过 sqlite 进行查询。

1 个赞