все вопросы по Anki задавайте на форуме  reddit.com/r/AnkiRu/ 

• Импорт/экспорт

Добавив таким образом пару-тройку десятков (сотен, тысяч) карточек,
начинаешь понимать, что дальше так дело не пойдёт.
Долго, дорого, неэффективно.

Возникает идея о групповом добавлении карточек.

Но любые групповые операции всегда дело достаточно рискованное.

Экспорт

Поэтому сначала надо сохранить то, что уже наработано.

Тут придётся ввести ещё одно новое понятие — коллекция.

Коллекция

Автор программы коллекцией называет все колоды, вместе взятые, что есть в текущем профиле.

А также все группы настроек колод, если в экспорт добавляется информация об расписании.

Примечание
Настройки профиля
(те, что в Инструменты → Настройки…​)
НЕ экспортируются никогда!
Оно и понятно — ведь в них хранится пароль от учётной записи
пользователя на сайте AnkiWeb.

В примере коллекция состоит из двух колод, Английский язык и Таблица умножения.

Файл - Экспортировать…​ в строке меню или Ctrl+E на клавиатуре
Выскакивает окошко, запрашивающее параметры экспорта:
  • должны быть выбраны

    • Формат экспорта: пакет колод Anki (*.apkg)

    • Содержит: все колоды

  • должны быть отмечены

    • Добавить в экспорт информацию о расписании

    • Присоединить медиа-файлы

Файл collection.apkg сохранён на рабочем столе
Предупреждение
Обратите внимание и соблюдайте осторожность!

Коллекция всегда сохраняется на рабочем столе в один и тот же файл с одним и тем же именем.

Нет окна диалога, в котором бы можно было указать папку и имя файла!

Хорошо, что выскакивает предупреждение такой файл уже есть:

Поэтому если предыдущая копия коллекции ещё может потребоваться
(или это вообще файл с коллекцией другого профиля),
необходимо предварительно переименовать её файл!

Все колоды

Если снять галочку Добавить в экспорт информацию о расписании,
то появится окно для выбора папки и имени файла с предложенным именем Все колоды,
которое можно заменить на свой вариант (имя профиля, например).

То есть при экспорте всей коллекции без расписания
уже нет принудительного создания collection.apkg на Рабочем столе,
(тяжкого наследия царского режима первой версии Anki),
по сути это нормальный экспорт колоды (обретение Anki2), только для всех колод сразу.

Осторожно!
При этом надо понимать:
Если в копии нет информации о расписании,
то речи о резервной копии уже не идёт.

Этот вариант копирования используется, когда надо начать обучение сначала
либо поделиться своей коллекцией колод с другими (разумеется, за деньги).

Экспорт колоды

Подсказка
На практике
Гораздо удобнее экспортировать не всю коллекцию сразу, а отдельные колоды.

В выпадающем списке под шестерёнкой справа от имени колоды
есть команда Экспорт, колоды в любой другой удобный формат

Экспорт, колоды в любой другой удобный формат
Осторожно! Если вы сохраняете свою колоду для того, чтобы передать её кому-то ещё,
то необходимо снять галочку Добавить в экспорт информацию о расписании

Так вот, экспорт отдельной колоды удобнее тем, что появляется возможность явно указать,
в какую папку и под каким именем сохранить колоду:

При необходимости выскочит безликое предупреждение

Кстати говоря, сохраняемую колоду можно выбрать из выпадающего списка
прямо в том же окне диалога экспорта, вызываемого по Ctrl+E:

Если выставлена галочка Добавить в экспорт информацию о расписании,
то сохраняются также группы настроек, имеющие отношение к колоде.

При восстановлении с такой экспортной копии порой бывает,
что группа настроек не подцепилась к восстановленной колоде.
Можно побороть, но это уже детали и тонкости.

Резервный экспорт

Если сохраняете колоду в целях резервного копирования,
то следует выставлять галочку Добавить в экспорт информацию о расписании.

Если резервный файл держите единственный,
то следует также выставлять галочку Присоединить медиа-файлы

Если резервных файлов несколько (скажем, ежедневные копии за последнюю неделю),
а размер медиа-файлов достаточно большой и они не меняются каждый божий день,
то как минимум одна из копий должна содержать присоединённые медиа-файлы.

Синхронизация с AnkiWeb

Возможно, для синхронизации придется настроить разрешения для Anki в вашем файрволе.

Существует ещё один способ сохранить свою коллекцию на внешнем носителе.

У автора программы есть сайт, ankiweb.net Регистрация на нём бесплатна.

Дальше клик по иконке Синхронизировать с AnkiWeb в правом верхнем углу окна

Процесс синхронизации достаточно тормозной, при необходимости его можно прервать, просто закрыв окно процесса.

Закрыться оно может не сразу, кстати говоря.

 { Ваша коллекция успешно загружена на AnkiWeb. }

При открытии и закрытии программы

Если сейчас закрыть программу Anki и запустить её вновь, то можно заметить,
что и в том, и в другом случае отработала синхронизация с веб-сервером AnkiWeb.

Точнее говоря, автоматическая синхронизация отрабатывает
при открытии и закрытии профиля, а не программы,
но о профилях чуть позже.

Дело в том, что в Инструменты → Настройки…​ на вкладке Синхронизация галочка
Автоматически синхронизировать при открытии или закрытии профиля выставлена по умолчанию

Если снять эту галочку, то синхронизация будет запускаться только явно, при клике по иконке в правом верхнем углу окна.

Отменить авторизацию

В окне Инструменты → Настройки…​ на вкладке Синхронизация
справа от кнопки Отменить авторизацию показывается имя учётной записи,
от имени которой выполняется Синхронизация.

Инструменты → Настройки…​ → Авторизация → Отменить авторизацию

Перезаписать в одном направлении

Изредка, когда колода сильно меняется,
возникает необходимость выгрузить её на сервер AnkiWeb целиком.

Иногда, скажем, когда случайно было удалено большое количество карточек,
требуется загрузить колоду с сервера AnkiWeb целиком.

В обоих случаях поможет галочка
Инструменты → Настройки…​ → Авторизация →
При следующей синхронизации перезаписать в одном направлении

Подсказка Эта галочка после ближайшей синхронизации сбрасывается сама собой,
специально заходить в настройки профиля, чтобы снять её — не требуется!
Предупреждение Чем опасна такая синхронизация, так это тем,
что направление принудительной заливки нельзя задать заранее!

В момент начала синхронизации выскакивает запрос:

 { Загрузить на AnkiWeb, Получить с Ankiweb, Отменить }

Тут надо быть очень внимательным, чтобы не ошибиться! Потому что очень легко кликнуть не по той кнопочке, и все последние изменения (которые как раз и требовалось сохранить!) будут потеряны!

Безвозвратно или нет — тут уже всё будет зависеть только от наличия и актуальности резервной копии.

Осторожно! Поэтому обязательно делайте экспорт всей своей коллекции непосредственно ПЕРЕД синхронизацией!!!

Также звуки и изображения

Практически всегда эта галочка должна быть включена.

Отключать её имеет смысл только тогда, когда количество и размер звуков и картинок вызывающе велики.

И, пожалуй, только тогда, когда выполняется принудительная загрузка/выгрузка, а локально/на_сервере все звуки и изображения уже есть (может даже в какой-нибудь посторонней папке), надо получить только текст карточек и их расписание. Просто чтобы не тратить трафик и время на загрузку (а скопировать всё в проводнике или какой там у вас любимый файловый менеджер).

Импорт

Меню Файл → Импортировать…​ или на клавиатуре Ctrl+I

и появится окно выбора файла

Нужно выбрать Тип файлов Сжатая колода Anki (*.apkg)
и найти папку с файлом, который нужно импортировать

Окно с итоговым сообщением достаточно пространное,
при случае в нём будут подробные объяснения,
что и почему импортировать не удалось.

Ну а пока всё хорошо, прекрасная маркиза :-)

Примечание
Сообщение несколько сбивает с толку:

Обновлённые записи ведь тоже импортированы,
не только добавленные карточки.

Файл .apkg

Как альтернатива: можно просто запустить на выполнение
нужный файлик с расширением .apkg прямо из Проводника Windows
(или какой у вас там любимый файловый менеджер).

Коллекции

Когда импортируется файлик .apkg с единственной колодой,
то остальные колоды в коллекции не затрагиваются.

Важно! Когда импортируется вся коллекция целиком
(запускается файлик collection.apkg на рабочем столе
ну или как он там был переименован и куда там был перемещён),
то все колоды, которые на данный момент есть в профиле,
будут удалены, а вместо них загружено содержимое
импорируемой коллекции.
Example 1. Попробуйте прямо сейчас:

Создайте колоду Русский язык и выполните импорт коллекции,
которая была создана чуть ранее.

Сначала вылетит предупреждение:

Это действие удалит существующую коллекцию,
заменив её данными из импортируемого файла.
Вы уверены? Данет, наверное.

Результат: потеряна как добавленная после экспорта коллекции колода,
так и статистика по карточкам, которые были выучены после экспорта.

Сброс статистики

Вот двор, во дворе кол, на колу мочало – начинай сначала!

Иногда при изучении колоды, когда оно идёт непросто,
хочется как бы стереть этот черновичок
и начать жить учить колоду заново.

Сделать это достаточно легко:
  • Сначала надо экспортировать колоду

    • без расписания!

  • Удалить через Обозреватель Anki

    • все карточки в этой колоде

      • (а не саму колоду!)

  • Импортировать обратно.

Вариант с помещением в конец очереди

Более изящный вариант: в Обозревателе Anki выделить все карточки

Редактирование - Изменить расписание…​

и Поместить в конец очереди новых карточек.

Резервные копии

Дело в том, что помимо пользователя, экспортом колод занимается и сама программа Anki.

Примечание Автоматически резервируются только сами карточки и их расписание!
Резервирование звуков, изображений и видеофайлов целиком возложено на пользователя!

Программа помещает свои копии коллекции в папку
\Users\ пользователь \Documents\Anki\ профиль \backups\

  • перед каждым закрытием профиля

  • перед каждой синхронизацией

Немного поуправлять этим процессом можно через
Инструменты → Настройки…​ → Резервные копии,
указав количество последний копий, которые следует хранить,
и надо ли их сжимать:

Влияет это только на занимаемое дисковое пространство и на скорость, с какой будет закрываться программа.

И синхронизация

  1. Сначала создаётся резервная копия коллекции (правда, без медиа-файлов).

  2. Затем выполняется синхронизация.

Подсказка В случае, если при синхронизации вы ошиблись и кликнули не по той кнопке, задав неправильное направление синхронизации и вместо загрузки на AnkiWeb получили с сайта — просто запустите самый свежий файл backup-?*.apkg и повторно загрузите коллекцию на сайт.

Текстовый формат

Экспорт/импорт возможен не только во внутренний формат Anki, но и в обычные текстовые файлы с различными разделителями между полями (табуляция, точка с запятой, дефис и т.п.)

Кроме того, на входе есть некоторое понимание форматов Mnemosyne, Supermemo и Pauker.

Экспорт в текст

Сохранять данные в текстовом формате требуется в основном для групповых поиска и замены в текстовом редакторе и последующего реимпорта, когда не хватает возможностей Редактирование → Найти и заменить…​ в Обозревателе Anki.

Экспорт карточек

Для сохранения карточек (не записей!) в текстовом файле с разделением полей табуляцией
надо открыть в уже знакомом окне Экспорт, колоды в любой другой удобный формат
выпадающий список Формат экспорта
и выбрать в нём строку Карточки в простой текст (*.txt)

Дальше стандартное окно для выбора папки и имени txt-файла.

К сожалению, Блокнот Windows с таким файлом не справляется
WordPad ничем не лучше
Попытка открыть через диалог к успеху не привела

Честно говоря, такой формат с разделением табуляцией не очень удобен для восприятия человеком, скорее предназначен для программ. M$ Excel, например, прекрасно открывает этот файл.

и M$ Word рулит!
После сохранения из Word’a и Блокнот,
и Wordpad довольны

Разница понятна:

Anki экспортирует файл в кодировке UTF-8,
а Word сохраняет файл в кодировке UTF-8+BOM (Byte Order Mark).

Кроме того, Anki сохраняет конец строк в UNIX-формате (LF only), а Windows-программы ожидают CR+LF.

Примечание Такие текстовые редакторы, как Notepad++ или EditPlus — сразу открывают без труда.

Реимпорт карточек

невозможен.

Anki может импортировать только записи.

Это же логично: как в простейшем текстовом файле указать, например, что карточки являются связанными?

Экспорт записей

Для сохранения записей (не карточек!) в текстовом файле с разделением полей табуляцией
надо открыть в уже знакомом окне Экспорт, колоды в любой другой удобный формат
выпадающий список Формат экспорта
и выбрать в нём строку Записи в простой текст (*.txt)

вместе с метками

Смотрим результат деятельности в нормальном средстве просмотра
(Lister от Total Commander понимает практически любой формат :-)

Реимпорт записей

Дальше в нормальном редакторе (Notepad++) что-нибудь меняем (например, вариант перевода слова осень) и добавляем html-теги, чтобы повлиять на отображение слова на карточке:

 { <b> осень </b> autumn * }

И по Ctrl+I или Файл → Импортировать…​

находим нужный файл
 { Поля разделены: Символы табуляции; Разрешить использование HTML в полях }
и настраиваем поля диалога импорта:

Тут идея была такая: импортировать карточки в колоду По умолчанию,
чтобы не трогать те карточки, которые уже есть в колоде Английский язык,
посмотреть, поиграться и удалить.

Поля разделены

Мастер импорта Anki смотрит на первую строку предложенного файла
и пытается по ней предугадать разделитель, который используется в этом файле:
табуляция, точка с запятой, запятая и т.п.

Если выбор Anki не устраивает, можно указать разделитель самостоятельно,
достаточно кликом по кнопке вызвать окно с соответствующим полем ввода:

\t используется для указания табуляции.

Поле длиннющее, но указывать следует только один символ. Попытки указать разделитель из двух и более символов приводят к неработоспособности программы.

Разрешить HTML

Эта галочка нужна, когда теги HTML в полях записи должны быть распознаны как оформление слов.

Если теги должны просто быть показаны пользователю (например, колода посвящена изучению HTML), то галочка НЕ нужна.

Что получилось?

не по-детски

Почему строка 'spring весна *' содержит 4 поля, а от неё ожидается 3?

Этот вопрос на самом деле распадается на два вопроса:

  1. почему строка 'spring весна *' содержит 4 поля, когда мы видим всего три слова?

  2. почему ожидается 3 поля?

На первый вопрос ответ такой: потому что символы табуляции человеческому глазу не видны. На самом деле в этой строке 3 символа табуляции (получается, они разделяют 4 поля), это легко увидеть по положению текстового курсора, если ткнуть мышкой далеко справа от видимого конца строки.

В Notepad++ можно сделать их видимыми:
  • Вид → Отображение символов → Отображать Пробелы и Табуляции

И что же видно? Правильно, какие-то неправильные стрелки в конце строки, ведущие в никуда. После которых нет никакого текста.

Вместе с метками

Помните, в диалоге экспорта была отмечена галочка Вместе с метками?

Так вот, у каждой записи все её метки, разделённые пробелами, показываются в конце строки, последней колонкой.

Просто метки ещё не использовались, поэтому колонка пуста.

Разные типы записей

Что видно ещё? Правильно, в первых двух строках — по две оранжевые стрелочки, в последних двух — по три.

Почему так? Тут самое время вспомнить, что времена года добавлялись с разными типами записей.

Колонки в Обозревателе Anki

Можно легко посмотреть, какие карточки в колоде к каким типам записей относятся.

Для этого достаточно включить соответствующую колонку Запись
(клик правой кнопкой мыши по заголовкам колонок):

и перетащить её мышкой поудобнее,

поменять ширину

или вовсе скрыть, скажем, колонку с названием колоды — в данныё момент его всё равно видно в дереве слева.

Итак, зима и лето были добавлены в записи типа Основная (+обратные карточки),
а весна и осень были добавлены в записи типа Основная (обратные по выбору).

Для первой пары это означает два поля на запись,

для второй пары — три поля на запись.

Результат: экспортируются такие колоды сборная солянка из карточек, принадлежащих разным типам записей, совершенно нормально, просто в каждой строке получается своё количество полей (колонок).

А вот импортировать такой файл как задумано — невозможно.

Как правильно?

После экспорта надо делить полученный текстовый файл таким образом,
чтобы записи, принадлежащие одному типу записей, были все вместе в одном файле,
а записи другого типа — в другом текстовом файле.

Либо создавать фильтрованные колоды выборкой из основной колоды записей определённого типа
и экспортировать в их в разные текстовые файлы.

Тогда, последовательно импортируя каждый файл и указывая ему каждый раз соответствующий тип записи (левый верхний угол окна), а также одну и ту же колоду (правый верхний угол окна импорта), можно достичь желаемого результата.

Импорт текста

Итак, вбивать слова в поля бесконечно всплывающих окон поднадоело, возникло желание набрать в блокноте простенький список и импортировать его в программу Anki.

Первый формат, который приходит в голову, обычно школьный — через тире:

При сохранении надо обратить внимание на кодировку файла и вместо предлагаемой по умолчанию ANSI указать UTF-8

Далее в Anki по Ctrl+I или Файл → Импортировать…​
в стандартном окне находим нужный файл, в диалоге настроек импорта указываем
нужный тип записей (левый верхний угол),
нужную колоду (правый верхний угол).

Тут обращает на себя внимание предположение Anki о том, что поля разделены пробелом.
А это не так, поля разделены той чёрточкой (тире, дефис, минус),
которая на клавиатуре справа от нуля.
Надо указать Anki, клик по кнопке Поля разделены:

Обратите внимание, как изменилось предполагаемое Anki количество колонок в файле:
с трёх оно уменьшилось до двух.
И правильно, ведь чёрточка на строке всего одна
а пробелов было два, до чёрточки и после. Потому и колонок предполагалось три:
русский, тире, английский. Причём русские слова попали бы в Вопрос, тире в Ответ
(да, у всех карточек ответ был бы одинаковым),
а английские слова были бы присвоены записям как метки.

Дальше вызывает вопросы выпадающий список
Обновлять существующие записи, когда первое поле совпадает
Какие ещё есть значения?

Игнорировать строки, где первое поле соответствует существующей записи и
Импортировать, даже если существующая запись содержит такое же поле

В данном случае без разницы, ведь записей с днями недели в Anki пока нет.

Разрешать использование HTML в полях?

В данном случае без разницы, ведь значения импортируемых полей не содержат разметки HTML.

Ну всё, Импорт.

Он сказал: "Поехали!"
Вжё хохоржо!

Импорт csv-файла

Дальше возникает желание выучить, скажем, сокращённые названия дней недели.

Набиваем табличку
и сохраняем её в csv-файл
разделитель точка с запятой угадан правильно
Импортируем и получаем

Что с ним не так? Правильно, M$ Excel сохраняет csv-файл в кодировке ANSI (Windows-1251),
Anki же понимает только кодировку UTF-8.

Открываем Блокнот и Файл → Сохранить как…​ в нужной кодировке

Импортируем. Что получилось?

 { 0 записей добавлено, 7 записей обновлено. }
Правильно
  1. Это уже русский язык, а не английский, по идее, для него и колоду отдельную надо создать.

  2. Оставлен же выбор режима Обновлять, когда совпадают — вот они и обновились.