Page 25 of 29

Posted: Tue Sep 02, 2014 12:43 pm
by Skif_off
Drums
В ветке HKCU\Software\Akelsoft\AkelPad\Recent многострочная запись (REG_MULTI_SZ) для каждого файла fileN в виде

Code: Select all

путь\имя
кодировка
не знаю
Bookmarks=(строки через запятую)
Либо в файле сессии плагина Sessions в похожем виде.

Posted: Wed Sep 03, 2014 1:04 pm
by Drums
Skif_off большое спасибо!

Posted: Sat Sep 06, 2014 1:48 am
by Drums
Оказывается, записи в реестре заменяются друг другом. Я выставил, в настройках программы, значение 999, но не факт, что это поможет сохранить закладки в долгосрочной перспективе, так как я ежедневно пользуюсь большим кол-вом текстовых файлов. Есть какой-нибудь способ сохранить закладки перманентно, до ручного удаления?

Спасибо.

Posted: Sat Sep 06, 2014 4:57 am
by San_dr
Drums,
У Andrey_A_A в его сборке есть скрипт Сохранение и восстановление закладок - BookmarksPlus.vbs
http://forum.ru-board.com/topic.cgi?for ... pic=4764#1

Posted: Sat Sep 06, 2014 5:37 am
by Drums
Боюсь, мне понадобится помощь. С первого запуска сборки - понял, что пользоваться ей не смогу, но файл BookmarkPlus.vbc вытащить удалось. Перекинул его в C:\Windows\SysWOW64\AkelFiles\Plugs\Scripts, но он, по всей видимости, не работает, так как ничего не происходит. Сам скрипт выключенный LineBoard автоматически не загружает, как написано в описании. Что мне делать?

P.S. Так же я не до конца понял, что именно делает этот скрипт? Куда он будет сохранять закладки и т.д.

P.P.S. Functions установил, вроде как...

Posted: Sat Sep 06, 2014 8:57 am
by Skif_off
Drums wrote:Что мне делать?
Для начала - открыть скрипт и прочитать комментарии, там есть два готовых пункта меню, которые вам нужны. Один момент: т.к. вы ставите с заменой блокнота, вам придется выбрать другое место хранения файла с заладками (создайте его сразу, лучше в UTF-16 LE). Можно, например, в %AppData%\AkelPad\ListBookmarks.txt или другое место, куда есть права на запись.

Однако, у меня скрипт не заработал (останавливается с ошибкой), если у вас тоже, то лучше написать автору в ЛС (он не часто заглядывает) или, наверное, перебраться сюда.

Posted: Sat Sep 06, 2014 9:47 am
by Drums
К чёрту! Рыться в скриптах мне не дано...

Posted: Sat Sep 06, 2014 12:00 pm
by Skif_off
Drums
Ну нельзя так сразу сдаваться :) Ошибку у себя нашел: проглядел дату, надо было обновить Functions.vbs (5.9->6.1, в старом не было GetAllTabListBookmarks). Кстати, файл с закладками насильно сохраняется в UTF-8.

Т.к. у вас с заменой блокнота, делаете так:

- кладете BookmarksPlus.vbs в \AkelFiles\Plugs\Scripts, Functions.vbs в \AkelFiles\Plugs\Scripts\Include (брать из самой свежей сборки);
- т.к. у обычных программ, не запущенных с правами администратора, нет права записи в системные каталоги, создаете, например, в C:\Users\%User%\AppData\Roaming\ папку AkelPad, в нее кладете пустой текстовый файл ListBookmarks.txt, можете сразу указать кодировку UTF-8, но необязательно - скрипт сделает это насильно. Если выберете другое место, обратите внимание на переменные среды Windows, абсолютные пути не всегда удобны;
- добавляете в меню (плагин ContextMenu или на тулбар, но тогда нужны иконки) три пункта

Code: Select all

-"Сохранить закладки всех открытых документов в файл ListBookmarks.txt" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"4" "%AppData%\AkelPad\ListBookmarks.txt"`)
-"Установить закладки открытым документам, прописанным в файле ListBookmarks.txt" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"5" "%AppData%\AkelPad\ListBookmarks.txt"`)
-"Заменить закладки открытым  документам, прописанными в файле ListBookmarks.txt" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"6" "%AppData%\AkelPad\ListBookmarks.txt"`)
Текст лучше все-таки подсократить, неприлично длинное название пунктов. Или даже

Code: Select all

"Сохранение/восстановление закладок"
{
 -"Сохранить закладки открытых файлов" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"4" "%AppData%\AkelPad\ListBookmarks.txt"`)
 -"Установить закладки открытым файлам" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"5" "%AppData%\AkelPad\ListBookmarks.txt"`)
 -"Заменить закладки открытым файлам" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"6" "%AppData%\AkelPad\ListBookmarks.txt"`)
}

До кучи:

Code: Select all

"Открыть ListBookmarks.txt" OpenFile("%AppData%\AkelPad\ListBookmarks.txt")
Много не проверял, но со скриптом есть одна проблема: после того, как отработает, открывает файл ListBookmarks.txt. Непонятно, зачем?


З.Ы. Кстати, обратите внимание на LineBoardBookmarks.js (брать удобнее отсюда). Русификация: в самом низу скрипта вместо

Code: Select all

//  else if (AkelPad.GetLangId(0 /*LANGID_FULL*/) == 1049 /*Russian*/)
...здесь пара-тройка десятков строк
//    sTxtReplaceWith   = "replace with:";
//  }
вставьте

Code: Select all

  else if (AkelPad.GetLangId(0 /*LANGID_FULL*/) == 1049 /*Russian*/)
  {
    sTxtInvalidArg    = "Неверный параметр: ";
    sTxtCut           = "Вырезать строки";
    sTxtCopy          = "Копировать строки";
    sTxtOpenInTab     = "Открыть в новой вкладке";
    sTxtPasteTo       = "Вставить в (переписать) строки";
    sTxtReplace       = "Заменить строки";
    sTxtDelete        = "Удалить строки";
    sTxtSelection     = "Выделенные строки";
    sTxtBookmarkLines = "Снабдить строки закладками";
    sTxtUnmarkLines   = "Убрать закладки";
    sTxtInverseBooks  = "Инвертировать закладки";
    sTxtGoTo          = "Перейти к";
    sTxtNext          = "Следующая";
    sTxtPrevious      = "Предыдущая";
    sTxtShowPanel     = "Показать панель";
    sTxtShowRuler     = "Показать линейку";
    sTxtLBSettings    = "Настройки плагина LineBoard...";
    sTxtBookLinesAll  = "С закладками";
    sTxtUnLinesAll    = "Без закладок";
    sTxtBookLinesSel  = "С закладками в выделенном";
    sTxtUnLinesSel    = "Без закладок в выделенном";
    sTxtExpand        = "Расширить к ближайшей закладке";
    sTxtExpandTop     = "Расширить вверх к предыдущей закладке";
    sTxtExpandBottom  = "Расширить вниз к следующей закладке";
    sTxtReduce        = "Уменьшить к ближайшей закладке";
    sTxtReduceTop     = "Уменьшить сверху к следующей закладке";
    sTxtReduceBottom  = "Уменьшить снизу к предыдущей закладке";
    sTxtAll           = "Все";
    sTxtInSel         = "В выделенном";
    sTxtReplaceWith   = "заменить на:";
  }

Ну или возьмите у Andrey_A_A готовый (версию скрипта сначала проверьте), только там что-то было не совсем то или без перевода, не помню.

Posted: Sat Sep 06, 2014 12:40 pm
by Drums
Skif_off большое спасибо за помощь! Всё работает. К сожалению, самостоятельно открывается ListBookmarks.txt. И правда, зачем? Никак не исправить?

LineBoardBookmarks.js:

Что именно этот скрипт делает? Я закинул его в C:\Windows\SysWOW64\AkelFiles\Plugs\Scripts, но ничего не произошло.

Добавлено:

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

Posted: Sat Sep 06, 2014 1:40 pm
by Skif_off
Drums
Не знаю, как поправить, нужно смотреть. Посмотрите BookmarksPlus.vbs, в начале были ключи запуска, может там что-то подходящее? Или выложите вместе с Functions.vbs на rghost.ru, например, я с телефона.

Скрипт отнюдь не достаточно положить :) Его нужно вызвать или прописать запуск вместе с AkelPad. Как правило, в начале скрипта более-менее подробно написано, что и как.
LineBoardBookmarks.js существенно расширяет возможности использования закладок (по переводу уже должно быть понятно), странно, что его у вас еще нет :) У себя (есть кнопка на панели, есть пункт меню) запускаю без параметров:

Code: Select all

-"Операции с закладками" Call("Scripts::Main", 1, "LineBoardBookmarks.js")
меню появляется в позиции курсора.

З.Ы. Наверное, пора попросить Instructor перенести крайние сообщения в тему обсуждения скриптов?

Posted: Sun Sep 07, 2014 12:58 am
by Drums
Удалось запустить LineBoardBookmarks.js, спасибо. Но ничего полезного для себя не нашёл.

Меня всё ещё интересует вот это: "Есть пример контекстного меню для сохранения закладок только выбранного файла (одно окно в режиме многооконности), а не всех? Иначе удаляет все закладки, если файлы не открыты." Есть варианты?

Posted: Sun Sep 07, 2014 1:16 pm
by Skif_off
Drums wrote:Меня всё ещё интересует вот это:
Как вы себе это представляете? Файл закладок кладется рядом с нужным файлом?

Вообще, в Functions.vbs есть готовая функция GetListBookmarks().

Posted: Wed Apr 15, 2015 7:25 am
by Akuro
Sometimes I lose my bookmarks.
Where do bookmarks get saved? Into what file?

Posted: Wed Apr 15, 2015 8:38 am
by DV
Akuro wrote:Where do bookmarks get saved? Into what file?
The bookmarks, marked text (if any) and folded parts (if any) are saved by the Session plugin. By default, it's saved to the file "AkelFiles\Plugs\Sessions\OnExit.session".

Posted: Wed Apr 15, 2015 9:03 am
by Akuro
DV
I don't have a file "OnExit.session"
Only .session files named after my saved sessions. Which explains why it kept the bookmarks for these files residing in saved sessions, but not for my other - non-sessioned bookmarks. Or so I think.

Went to settings and enabled "Save on exit: OnExit" - I had this DISabled because I thought it would always save my sessions on exit. Which is something I don't want.

So, thanks for this information. This will - hopefully - solve my problem. :)