При старте Фара задать активную панель и запустить команду в ней

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
citRiks
Posts: 902
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

При старте Фара задать активную панель и запустить команду в ней

Post by citRiks »

Latest post of the previous page:

NightRoman wrote: Wed 24 Jun, 2020 21:03 Жаль, однако, что Фар не позволяет это сделать без лишних приседаний.
В идеале, думаю что выглядело бы так:
far.exe "passive_path=C:\here" "active_path=D:\there" "command=dir /w"

Социальный эксперимент.
Если этот пост наберет 5 лайков, то реализую
В Луа, через обработчик события "FarStart"
Last edited by citRiks on Fri 26 Jun, 2020 15:04, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
HaRT
Moderator
Posts: 9602
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 114 times
Been thanked: 233 times

При старте Фара задать активную панель и запустить команду в ней

Post by HaRT »

NightRoman wrote: Wed 24 Jun, 2020 20:16 у меня много таких команд ожидается (тесты с некоторыми вариациями), не хотелось бы на каждый создавать скрипт
Так можно же скрипту передавать параметры, на той же странице документации написано, как.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by zg »

citRiks wrote: Wed 24 Jun, 2020 20:05не нужно ничего печатать, печатание команд - это зло :)
citRiks wrote: Wed 24 Jun, 2020 21:04

Code: Select all

CmdLine.Value = [[edit:whatever.txt]]; eval("Enter", 2)
я так смотрю, вы только на словах против посылки кнопок, а на практике прямо пропагандой занимаетесь. и да, здесь не прокатит отмазка, что по другому сделать нельзя, можно: Plugin.Command('3A2AF458-43E2-4715-AFEA-93D33D56C0C2',[[edit:whatever.txt]]).
citRiks
Posts: 902
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

При старте Фара задать активную панель и запустить команду в ней

Post by citRiks »

zg,
да, интересно, но это не общий случай, а например:
lua:Plugin.Command('3A2AF458-43E2-4715-AFEA-93D33D56C0C2', [[run:dir /w]])
.. и не получится, и в истории комманд сохранится как lua:.., а не run:dir /w

Поэтому все еще думаю что надо бы что то вроде CmdLine.Exec(...)
(или CmdLine.Run(...), или CmdLine.Launch(...))

Или как это сделать?
Last edited by citRiks on Thu 25 Jun, 2020 10:16, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2134
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 131 times
Been thanked: 211 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by buniak_a_h »

zg, citRiks, я написал когда-то скрипт, выполняющий команду для файла из архива (аналогично CtrlG). Под командой понимается как внешняя (по отношению к FAR-у) команда, так и вызов плагина (макроса) по префиксу. Причём префикс может принадлежать не только FARCmds. Сам я немного переделал упомянутый скрипт: вычленил функцию, выполняющую команду, в модуль. Но т.к. за пару месяцев ни одного сообщение не появилось, выкладывать не стал. Если надо - я опубликую такой "универсальный" модуль. И тогда вместо приведённых Вами текстов будет нечто типа
require("EvalCmd")(«команда», «каталог», «wait»)
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by zg »

citRiks wrote: Thu 25 Jun, 2020 09:20 zg,
да, интересно, но это не общий случай
для запуска плагина по префиксу — общий.
citRiks wrote: Thu 25 Jun, 2020 09:20а например:
lua:Plugin.Command('3A2AF458-43E2-4715-AFEA-93D33D56C0C2', [[run:dir /w]])
если уметь читать, то получится. но вы продолжаете упорно не хотеть научиться хотя бы базовым навыкам чтения.
citRiks wrote: Thu 25 Jun, 2020 09:20.. и не получится, и в истории комманд сохранится как lua:.., а не run:dir /w
где такое условие было, кроме вашего поста? я — не вижу. менять правила по ходу дискуссии — демагогия. зачем вы пытаетесь меня обмануть?
Last edited by zg on Thu 25 Jun, 2020 10:52, edited 1 time in total.
buniak_a_h
Posts: 2134
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 131 times
Been thanked: 211 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by buniak_a_h »

zg wrote: Thu 25 Jun, 2020 10:51 для запуска плагина по префиксу — общий.
Не-не!
1. Кроме FarCmds есть и другие плагины, запускаемые по префиксу. И тогда надо искать плагин, запускаемый по префиксу.
2. Сам префикс иногда указывается в строке, а иногда - нет. Т.е. надо не только искать соответствующий плагин, но и получать его инфу, и анализировать PInfo.Flags на PF_FULLCMDLINE.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by zg »

buniak_a_h wrote: Thu 25 Jun, 2020 11:211. Кроме FarCmds есть и другие плагины, запускаемые по префиксу. И тогда надо искать плагин, запускаемый по префиксу.
2. Сам префикс иногда указывается в строке, а иногда - нет. Т.е. надо не только искать соответствующий плагин, но и получать его инфу, и анализировать PInfo.Flags на PF_FULLCMDLINE.
и? вы будете при этом использовать какую-то другую функцию, а не Plugin.Command?
buniak_a_h
Posts: 2134
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 131 times
Been thanked: 211 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by buniak_a_h »

zg, конечно же Plugin.Command . Но написанный Вами текст не решает задачи, описанной автором темы, в общем случае. И "прикручивание" команды к произвольному плагину отнюдь не тривиально.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by zg »

buniak_a_h wrote: Thu 25 Jun, 2020 14:38zg, конечно же Plugin.Command . Но написанный Вами текст не решает задачи, описанной автором темы, в общем случае. И "прикручивание" команды к произвольному плагину отнюдь не тривиально.
я указал метод, позволяющий решить задачу в общем случае. этого достаточно.
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by NightRoman »

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

Допустим, есть команда:

Code: Select all

far c:\tmp my:command
Зачем составителю этой команды может понадобится запустить my:command в неизвестной пассивной панели?

И что значит "запустить команду в пассивной панели"? Фар временно сделает неизвестную панель активной, запустит в ней команду и потом сделает активной "c:\tmp"?
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by NightRoman »

Было бы полезнее оставить первые два параметра только для путей активной и пассивной панели.
А команду задавать отдельным параметром, например, -command <my command>.
Команда, конечно, выполняется в активной панели.
И это может быть и обычная команда, а не только команда с префиксом, как сейчас.
Last edited by NightRoman on Fri 26 Jun, 2020 07:10, edited 2 times in total.
User avatar
DrKnS
Posts: 5748
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 319 times

При старте Фара задать активную панель и запустить команду в ней

Post by DrKnS »

NightRoman wrote: Fri 26 Jun, 2020 06:54 И что значит "запустить команду в пассивной панели"? Фар временно сделает неизвестную панель активной, запустит в ней команду и потом сделает активной "c:\tmp"?
Да. Ноги растут оттуда.
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by NightRoman »

Ясно, предложение было реализовано "буквально", так сказать.
Можно ли пересмотреть этот дизайн и реализовать практически более полезный с параметром -command?
User avatar
HaRT
Moderator
Posts: 9602
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 114 times
Been thanked: 233 times

При старте Фара задать активную панель и запустить команду в ней

Post by HaRT »

NightRoman wrote: Fri 26 Jun, 2020 11:42 практически более полезный с параметром -command
Может, просто трактовать все позиционные параметры, начиная с третьего, как команду для выполнения в активной панели сразу после инициализации всего?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

При старте Фара задать активную панель и запустить команду в ней

Post by NightRoman »

HaRT wrote: Fri 26 Jun, 2020 12:23 Может, просто трактовать все позиционные параметры, начиная с третьего, как команду для выполнения в активной панели сразу после инициализации всего?
Тогда пользователь обязан задать первые два параметра. Иногда это не нужно, особенно второй.
Post Reply

Return to “Нужна помощь”