Anki

概要

  • 自らが切り開く未知の領域には、先人が切り開いた単語帳が存在しない。記憶は本質的に必要であり自分で管理する必要がある。
  • 自分で作れるまともな単語帳アプリ。単語を Spreadsheet でまとめても継続的な暗記の役には立たないし、絶対に散らかる。
  • 脳の記憶領域の可視化

インストール

バージョン制限

  • Ubuntu 22.04 では Anki 25.02.x (qt6同梱版) が限界。
  • 理由: Anki 25.07以降はランチャー版で glibc 2.36 必須だが、Ubuntu 22.04 は glibc 2.35 だから動かない。アップデート通知 (25.09.4 等) は「いいえ」で無視。

手順

  • ガイド / GitHub releases から anki-25.02.x-linux-qt6.tar.zst を取得して展開
  • cd anki-25.02.x-linux-qt6 && sudo ./install.sh で /usr/local に上書き
  • 音声: sudo apt install mpv
  • 最新を使いたい時は Flatpak (flatpak install flathub net.ankiweb.Anki) か OS を 24.04+ へ

プログラム/テキストから操作 (AnkiConnect)

  • Claude Code 等のテキスト/プログラムから Anki を操作する場合は AnkiConnect を使う。
  • アドオン: ツール→アドオン→新規取得→コード 2055492159、Anki 再起動。
  • Anki 起動中に ~~http://127.0.0.1:8765~~ (リンク切れ) で HTTP/JSON API を提供。{"action", "version":6, "params":{...}} を POST し、{"result", "error"} が返る。
  • 操作範囲: デッキ/ノート/カードの検索・追加・更新・削除・デッキ間移動、タグ操作、メディア追加、統計取得など。
  • 例: curl localhost:8765 -X POST -d '{"action":"deckNames","version":6}'
  • 注意: Anki を起動しておく必要がある。updateNoteFields は対象ノートをブラウザで開いていると反映されない。
  • 公式仕様: https://git.sr.ht/~foosoft/anki-connect

用語

  • デッキ: カードの集合。SQL のテーブルみたいなもの
  • ノート: フィールドの集合。SQL のローみたいなもの。表面がキー
  • フィールド:フィールドにはデフォルトで表面、裏面、タグがある。"sound" など、他は自分で追加しまくれる。SQL のセルみたいなもの
  • カード
    • レンダリングされたノート。表面と裏面のペア。
    • 一つのノートから複数種類のカードを作れる。
  • 表面テンプレート・裏面テンプレート
    • ノートからカードを生成するためのルール。HTML みたいなもの。フィールド名などを入力して、実際に学習する時に表示される表面・裏面の表示を出力するコード。
    • デッキと 1:1?(ではなさそう、TODO)。表面フィールド・裏面フィールドとは異なる概念。
    • フィールドの参照は {{表面}} などで行う。
  • collection.media: メディアを置く場所 /home/hamko/.local/share/Anki2/ユーザー 1/collection.media など。
  • メディア: mp3 音声ファイル。
    • 以下で音声再生が可能。
      • /home/hamko/.local/share/Anki2/ユーザー 1/collection.media に output.mp3 を置く
      • フィールド FrontSound に output.mp3 と書く
      • 表面・裏面のテンプレートに [sound:{{FrontSound}}] と書く
    • 表面にも裏面にも音声をおけるので、裏面には例文を書いておくとよいかも

ショートカット

  • Ctrl-Del: ノートの削除
  • ブラウザ > ノート > 重複を検索
    • 間違えて同じ表面で登録したものを確認できる

選択学習

  • 特定のフィールドが特定の値になっているものだけ学習できるようにしたい。
  • 特定のタグが付いているものだけ学習できるようにしたい

一時デッキ(フィルターデッキ)

  • 検索条件(例 tag:ハン検準2級)に合うカードを一時的に1か所へ集めるデッキ。カードの本体は元のデッキにあり、一時デッキが借りている。
  • 借りている間、そのカードは元のデッキには出ない。一時デッキを削除すると元のデッキに戻る。
  • 作るときと設定を開いたときに、答えを元のカードに反映するかを選べる。英語版の表記は「Reschedule cards based on my answers in this deck」。
    • 反映する: 普通のデッキと同じ。答えると元のカードの次の出題日・統計が変わり、次の出題日が決まったカードは自動で元のデッキへ戻る。新規は青、学習中は赤、復習は緑。
    • 反映しない: 練習用。答えても元のカードは変わらず、新規も新規のまま。新規も含めて全カードが緑(今すぐ出せる)に数えられる。
  • 自分は基本「反映する」を使う。

フラグ

  • 赤フラグ(Ctrl+1): 「このカードは何かおかしい」の印。何が問題かは書かなくてよい。
    • 毎朝の定期実行でエージェントが全デッキの赤フラグを拾い、問題を推定して直す。直せたらフラグを外す。
    • 直せなかったもの(問題が分からない・見出しや音声のある欄を変える案など自動で書かないもの)は橙フラグ(2)に変わる。橙は自分で見るか、赤に戻して翌日もう一度やらせる。
    • 1日20ノートまで。仕組みは hamko-admin の pm/projects/topik-anki/README.md「段0 赤フラグのカードを直す」。

一括編集

  • 出力: ブラウザ > ノート > ノートをエクスポート > (テキストファイル形式のノート (.txt), 選択中のノート) > エクスポート
  • 編集: .txt ファイルを一括編集
  • 入力: ファイル > インポート > .txt ファイルを選択

プロンプト

  • ask "달러を含む韓国語の短い例文を作成してください。それ以外の単語はなるべく初歩的な単語を使ってください。"

Spreadsheet との同期

  • TODO

統計

  • 全学習時間が統計にない
    • Anki PC > Shift を押しながら統計 > collection, deck life > Review Time > Total で見れる

トラブルシューティング

PCだけでしかメディアが再生されないことがある

  • 以下で治ったことがある
    • メディアを全部バックアップ
    • メディアを全部削除
    • 全体に同期
    • メディアを全部戻す
    • 全体に同期