Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

переход к файлу из "Истории просмотра и редактирования" #640

Open
AVBL opened this issue Feb 24, 2023 · 9 comments

Comments

@AVBL
Copy link

AVBL commented Feb 24, 2023

Description of the new feature or improvement

Иногда не хватает возможности перейти к файлу (открыть в панели и позиционировать курсор на файле) из "Истории просмотра и редактирования" (Alt-F11).

Во-первых, не всегда нужный каталог есть в "Истории папок" (Alt-F12), во-вторых, там переход к каталогу, а не файлу, в-третьих, довольно много лишних действий получается по переходу между историями и листанием/поиском в списках.

PS: В плагине AdvCmpEx к файлам под курсором можно переходить по комбинации Ctrl-PgUp. Думаю, такую же комбинацию можно использовать тут.

Proposed technical implementation details (optional)

No response

@yegor-mialyk
Copy link
Contributor

I think a simple keyboard macro can help you. A straightforward one could look like this:
CtrlEnter CtrlHome g o t o : Enter

@AVBL
Copy link
Author

AVBL commented Feb 24, 2023

Macro {
description="Перейти из окна 'История просмотра и редактирования' к файлу в панели";
area="Menu"; key="CtrlPgUp CtrlNum9";
flags="";
code="Keys("CtrlEnter CtrlHome g o t o : Enter")";
}
так?

@AVBL
Copy link
Author

AVBL commented Dec 16, 2023

I found one drawback: this macro works when the history is open in the panels and the command line is present, but when called in the editor it no longer works. Noob's question: is it possible to execute the goto command while in the editor?

@HamRusTal
Copy link
Contributor

A more advanced script for this is among AltHistory emulation scripts.

@AVBL
Copy link
Author

AVBL commented Dec 19, 2023

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

  1. Не поддерживается нумпад. Это вроде лечится добавлением CtrlNum и ShiftNum в key= в трёх последних макросах.
  2. Макросы CtrlPgUp и CtrlPgDn не работают - они просто закрывают окошки истории. Как лечить это, я уже не знаю.

@AVBL
Copy link
Author

AVBL commented Dec 19, 2023

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

@AVBL
Copy link
Author

AVBL commented Dec 20, 2023

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

Суть в том, что в Panel_GoToFolderAndOpen вначале вырезается префикс view/edit, если он есть, и для этого производится сравнение в том числе со строками "просмотр" и "редактор":

local function GetLocalizedStrings()
  local lang = far.lang or win.GetEnv("farlang")
  if lang == "Russian" then
    return {
      CmdView = "просмотр";
...
    if prefix == localizedStrings.CmdView then

но в какой бы кодировке я не записывал макрос (OEM - 866 или ANSI - 1251), совпадения == не происходит. Через mf.index подстроку в любой из этих кодировок тоже не находит.

@w17
Copy link
Contributor

w17 commented Dec 20, 2023

utf8

@AVBL
Copy link
Author

AVBL commented Dec 20, 2023

Спасибо, теперь кажется всё работает. Если кому интересно, ниже получившийся скрипт, который является переделкой оригинального скрипта. Скрипт заархивирован, поскольку система не позволяет присоединить напрямую. Буду благодарен любым замечаниям, как исправить возможные баги и/или улучшить.

upd: поправил ещё одну недоработку оригинала - некорректная работа с корневыми каталогами и файлами в них (удалялись корневые слеши в путях).
AltHistory.lua.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants