クマーなひとときv2

雑多なメモ。twitterで書ききれないもの等。

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"の下にある数字だけ抽出したい。
上の例だと1057525710628862の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

f:id:tonkuma:20190308220114g:plain

雑感

多分 jq 使ったほうが楽だと思います。