Maximus5 / conemu-old-issues

Old issues imported from googlecode. Project was moved to
https://conemu.github.io
6 stars 1 forks source link

Safe Far close без сохранения открытых файлов #1650

Closed Maximus5 closed 9 years ago

Maximus5 commented 9 years ago

Originally reported on Google Code with ID 1651

Required information!
OS version: winXP
ConEmu version: 140707
Far version (if you are using Far Manager): 3.0.4012

ConEmu-Settings-Far Manager-Far macros-Safe Far close

Хотелось бы, чтобы макрос сохранения открытых в редакторе файлов при выходе из Far,
включался отдельно. К примеру, нужно "безопасное" закрытие табов фара и всего прочего
при клике по крестику закрытия окна конему, но в то же время файлы, открытые в редакторе,
сохраняться не должны. Сейчас, при задействовании Safe Far close, файлы сохраняются
независимо от содержания поля макроса Save all editors.

Reported by c2h5oh777 on 2014-07-21 20:37:48

Maximus5 commented 9 years ago
Это разные настройки не имеющие никакого отношения друг к другу.
И ОБА макроса могут настраиваться пользователем.
Меняйте макрос, для safe far close и получите желаемое.

Reported by ConEmu.Maximus5 on 2014-07-21 20:41:50

Maximus5 commented 9 years ago
Возможно я что-то не понимаю, но как бы я не менял макрос Save all editors, например
заменяя его на @ - сохранение всё равно происходит, если включена опция Safe Far close.
Мне же нужно, чтобы при клике на крестик закрытия окна конему в фар закрывался корректно,
так как без этого конему иногда повисает, не завершая фар.

Reported by c2h5oh777 on 2014-07-22 06:47:57

Maximus5 commented 9 years ago
Я же вроде ясно сказал, что нужно менять макрос для "Safe far close".
Макрос "Save all editors" служит для совсем других целей

Reported by ConEmu.Maximus5 on 2014-07-22 07:15:03

Maximus5 commented 9 years ago
Заменил в оригинальном макросе ShiftF10 на F10 n

@$while (Dialog||Editor||Viewer||Menu||Disks||MainMenu||UserMenu||Other||Help) $if
(Editor) F10 n $if (Dialog) $Exit $end $else Esc $end $end  Esc  $if (Shell) F10 $if
(Dialog) Enter $end $Exit $end  F10

Выдаёт окно с ошибкой, если есть открытые не сохранённые редакторы. - Что ему не нравится?

Reported by c2h5oh777 on 2014-08-05 18:20:32

Maximus5 commented 9 years ago
Почему бы сразу не показать это "окно с ошибкой"?

Reported by ConEmu.Maximus5 on 2014-08-05 18:23:26

Maximus5 commented 9 years ago
Полагал у вас выглядит также

Reported by c2h5oh777 on 2014-08-05 22:05:46


Maximus5 commented 9 years ago
Вы "пишете" макрос в формате "старого фара" а используете "ФАР С ЛУА"!!!
Макрос для луа виден в том же списке.

Reported by ConEmu.Maximus5 on 2014-08-06 04:54:57

Maximus5 commented 9 years ago
Было такое смутное подозрение - уж больно язык макроса похож на старый фаровский :)
Вместе с тем почему-то казалось, что в Конему макро-движок собственный, но синтаксически
совместимый с FAR2.

Может стоит детектить макро-движок и оставлять только совместимые макросы?

Reported by c2h5oh777 on 2014-08-06 06:23:30

Maximus5 commented 9 years ago
Impossible. А если юзер захочет В ЭТОМ конему запустить первый, или второй фар?
И конвертер макросов по понятной причине писать не хочется...

Reported by ConEmu.Maximus5 on 2014-08-06 06:33:03

Maximus5 commented 9 years ago
> конвертер макросов по понятной причине писать не хочется
На это точно время тратить не стоит. Может в подсказке указать: "Используйте язык макросов,
поддерживаемый вашей версией FAR manager", чтобы не было непоняток.

Новый тикет заводить не буду - не уверен, что это проблема Конему, но возможно это
"на стыке" фара и конему. Содержимое панелей не соответствует активной вкладке. Получилось
при закрытии фара по крестику, макрос Safe Far Close активен:
@while Area.Dialog or Area.Editor or Area.Viewer or Area.Menu or Area.Disks or Area.MainMenu
or Area.UserMenu or Area.Other or Area.Help do if Area.Editor then Keys("F10 N") if
Area.Dialog then exit() end else Keys("Esc") end end Keys("Esc") if Area.Shell then
Keys("F10") if Area.Dialog then Keys("Enter") end exit() end Keys("F10")

Reported by c2h5oh777 on 2014-08-06 12:39:29


Maximus5 commented 9 years ago
Чего делали - не пойму.
Но вообще-то, во время выполнения макроса табы НЕ обновляются. Это by-design.

Reported by ConEmu.Maximus5 on 2014-08-06 13:34:25

Maximus5 commented 9 years ago
Редко пользуюсь вьювером из-за отсутствия в нём раскраски, читать массивы безликих символов
утомительно. В редакторе же есть опасность изменения содержимого, причём это  событие
можно и не заметить, поэтому привык сохранять редактируемый текст вручную, когда редактура
доведена до логической точки, а закрывать FAR с отменой изменений.

Такой макрос закрывает FAR без сохранения редакторов:
@while Area.Dialog or Area.Editor or Area.Viewer or Area.Menu or Area.Disks or Area.MainMenu
or Area.UserMenu or Area.Other or Area.Help or Area.Shell do 
  if Area.Editor then 
    Keys("F10") 
    if Area.Dialog then Keys("n") end 
  end
  if Area.Shell then
    Keys("F10") 
    if Area.Dialog then Keys("Enter") end 
  else
    Keys("Esc") 
  end 
end

Reported by c2h5oh777 on 2014-08-07 05:20:54

Maximus5 commented 9 years ago
BTW, макросом или плагином ESC можно автоматически "нажимать Ctrl+L" во избежание нежданных
изменений.

Reported by ConEmu.Maximus5 on 2014-08-07 05:35:30

Maximus5 commented 9 years ago
Нужны шаги для повторения. Или хотя бы полный MemoryDump процесса ConEmu

Reported by ConEmu.Maximus5 on 2014-08-11 09:56:07

Maximus5 commented 9 years ago
Нужны шаги для повторения. Или хотя бы полный MemoryDump процесса ConEmu

Reported by ConEmu.Maximus5 on 2014-08-11 09:56:13

Maximus5 commented 9 years ago
Открываю файл во вьювере, либо редакторе, переключаюсь по CtrlTab в панели и вижу то,
что на приложенном скрине. Возможно это связано с недавно переписанным в FAR3 оконным
менеджером.

Reported by c2h5oh777 on 2014-08-12 06:19:53