Ank-Pixiv-Toolの履歴を、Pixiv Downloader EXにコピーした時の話
Ank-Pixiv-Toolの履歴を、 Pixiv Downloader EXにコピーしようとした時の話。
要約
- json.toolは便利。
- 検索結果は問題ないのに、それを:globalでレジスタに突っ込もうとすると、意図した値と別のものが入ってきた。
- 仕方ないので、検索結果をQuickFixウィンドウに出力して事なきを得た。
Ank-Pixiv-Toolの履歴を整形する
設定画面から履歴をエクスポートした直後のデータは人間が見るには辛いため、
:%!python -m json.tool
を実行して整形します。
こんな感じになります。
[ "NCS", "im9033024", "9356419", 1551778748544, 1 ], [ "PXV", "10575257", "46052", 1546180090118, 1 ], [ "PXV", "10628862", "46052", 1546180094427, 1 ],
ここから、"PXV"
の下にある数字だけ抽出したい。
上の例だと10575257
と10628862
の2つ。
vimの\zs, \zeを使う
vimの\zs, \zeを使って、目的の値を検索します。
/"PXV",\n\s\+\"\zs\(\d\+\)"\ze
後は検索結果をレジスタに突っ込めばいいので、:globalでyankします。
:g//yank B
しかし、何故か"PXV"
の部分がレジスタに登録されます。
"PXV", "PXV",
仕方ないのでQuickFixを使う
検索条件を変えても駄目だったので、検索結果をQuickFixに出力して、そこからyankしました。
以下はQuickFixに出力された値の例。
C:/Users/ton/Documents/qfixapp-data/hatena/vim-grey.md|29 col 14| "10575257", C:/Users/ton/Documents/qfixapp-data/hatena/vim-grey.md|36 col 14| "10628862",
これをyankして別バッファにpaste、数字とカンマだけに編集して取り込みました。
参考gif
雑感
多分 jq 使ったほうが楽だと思います。