Far-NetBox icon indicating copy to clipboard operation
Far-NetBox copied to clipboard

Невозможно удалить сессию с пробелом.

Open PaperbackWriter1 opened this issue 10 years ago • 8 comments
trafficstars

Far 3.0 build 4269 x64, NetBox 2.1.41 (build 365)

Не удаляются сохраненные сессии, в названии которых присутствует пробел, например < Session name="yandex%20disk" >. При нажатии F8 в такой сессии обнуляются все параметры - сервер, логи, пароль итд, но сама сессия остается.

PaperbackWriter1 avatar Feb 19 '15 21:02 PaperbackWriter1

Не подтверждаю. Проверил на Far b4272 + NetBox v2.1.41.365 и более ранних билдах Far - у меня всё удаляется по F8 и Del (у меня скрипт сопоставляет Del == F8) в любых х86 и в х64 сборках хотя имена сессий с пробелами. Я бы посмотрел локальные настройки и Lua/Moon скрипты - думаю что ошибка в них сидит. У меня к примеру сессии выглядят так:

x64_session

и я у себя проблемы удаления сессий с пробелами в именах не наблюдаю.

P.S.

Кстати, можно попробовать удалить кэш плагинов - он по моим наблюдениям часто вызывает проблемы.

VictorVG avatar Feb 20 '15 03:02 VictorVG

Вы случайно не создавали эти сесии очень-очень раньше, когда плагин был маленьким? Может статься, у вас в настройках хранится ДВЕ сессии с похожими именами. Попробуйте экспортировать нужные сессии, прибить ветку плагина нафиг, и импортировать свои сессии обратно.

AnrDaemon avatar Feb 20 '15 04:02 AnrDaemon

VictorVG - что имеется в виду под "локальные настройки и Lua/Moon скрипты", что именно смотреть? AnrDaemon - нет, создавал относительно недавно. Похожих имен нет. Пришлось удалить .db файл, в котором лежали настройки NetBox'а, а потом восстановить из бэкапа нужные.

PaperbackWriter1 avatar Feb 20 '15 08:02 PaperbackWriter1

БД настроек вашей копии Far и подключённые к ней скрипты - ведь если у вас как у меня этих копий несколько, то для исключения их взаимовлияния хватит Far.exe.ini:

[General]
UseSystemProfiles=0
UserProfileDir=%FARHOME%\Profile
GlobalUserMenuDir=%FARHOME%
TemplateProfile=%FARHOME%\Default.farconfig
UserLocalProfileDir=%FARHOME%\Profile

, отсутствия симлинков/хардлинков для скриптов в %FARHOME%\Profile\Macros\scripts и записи MacroPath = %FARPROFILE%\Macros\scripts LuaMacro.ini (если он есть в каталоге плагина LuaMacro).

И в то же время AnrDaemon правильно напомнил, что если попытаться импортировать сессии из NetBox версии ниже чем 2.1.38.315 наблюдался следующий эффект - сессия импортировалась частично - имя, часть основных настроек, но без логинов и URL которые приходилось заново вводить вручную, и тут да можно было получить дубликаты сессий, но даже в такой ситуации я их прекрасно чистил.

Хотя, хотя, гипотеза конечно фантастическая, но почему бы и не проверить - не происходит ли в момент удаления блокировки БД NetBox-а к примеру другой его копией которая случайно попала в каталог плагинов Far-а?

VictorVG avatar Feb 20 '15 09:02 VictorVG

У меня та же проблема.

@AnrDaemon

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

Подскажите пожалуйста что значит "прибить ветку плагина нафиг"? Как это делается в Far3? Спасибо.

eugals avatar May 10 '17 08:05 eugals

Минимально - удалить БД настроек плагина - ./Profile/PluginsData/42E4AEB1-A230-44F4-B33C-F195BB654931.db , НО! при её удалении все настройки плагина и сессии будут удалены.

Вариант номер два, пусть более трудоёмкий, зато корректный:

  1. выполняем операцию резервирования настроек:

far /export <путь_куда>\backup.farconfig

backup.farconfig запишется в XML 1.1 с кодировкой UTF-8 без BOM (надо помнить чтобы дров не наломать);

  1. открываем backup.farconfig в любом XML либо проще текстовом редакторе (редактор Far отлично справится) и в разделе pluginsconfig ищем запись <plugin guid="42E4AEB1-A230-44F4-B33C-F195BB654931"> - это и есть настройки NetBox-а, там находим подключ Sessions и правим значение атрибута name тэга <key name="....имя сессии..."> :
<key name="Default%20Settings">
	<value name="FSProtocol" type="text" value="SFTP%20(SCP)"/>
	<value name="Version" type="text" value="2.3.0"/>
</key>

после чего сохраняем свои изменения;

  1. затем удаляем БД настроек плагина - ./Profile/PluginsData/42E4AEB1-A230-44F4-B33C-F195BB654931.db

  2. и выполняем последнее действие - восстановление данных из резервной копии и одновременную корректировку ошибочных записей в БД:

far /import <путь_куда>\backup.farconfig

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

Единственное замечание - операции импорта/экспорта настроек надо проводить если запущена только одна копия Far v3.0 (в Far 1.x/2.x команды /import и /export не существуют) работающая с данной копией набора настроек (в Far3 путём изменения настроек в Far.exe.ini можно указать место хранения профиля и таким образом использовать ряд независимых наборов настроек) что позволит избежать проблемы конфликта между несколькими разделяющих этот набор настроек копиями Far-а.

VictorVG avatar May 10 '17 09:05 VictorVG

@VictorVG

Большое спасибо за развёрнутый ответ! Я просто скопировал все нужные мне сессии в отдельный каталог, удалил файл настроек, и вернул сессии обратно.

eugals avatar May 10 '17 09:05 eugals

И это вариант. По итогу они равноправны.

VictorVG avatar May 10 '17 12:05 VictorVG