Как правильно применить kbdLayout()?
Как правильно применить kbdLayout()?
При составлении макроса пробую в комстроке: macro:post %rskld=print(itoa(kbdLayout(),16));
жму Enter и получаю в строке в зависимости от текущей раскладки 4190419 или 4090409.
Это я что-то не так делаю или бага какая?
Фар 2.1 build 1807 bis19 x86
жму Enter и получаю в строке в зависимости от текущей раскладки 4190419 или 4090409.
Это я что-то не так делаю или бага какая?
Фар 2.1 build 1807 bis19 x86
Re: Как правильно применить kbdLayout()?
Очевидно, вы что-то делаете не так. А именно, вы не написали, чего хотите достичь
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как правильно применить kbdLayout()?
Документацию для кого писали?
http://api.farmanager.com/ru2/macro/mac ... #kbdlayout
http://api.farmanager.com/ru2/macro/mac ... #kbdlayout
Re: Как правильно применить kbdLayout()?
пример взят оттуда: №2John Doe wrote:Документацию для кого писали?
хочу проверить в какой раскладке набран текст, уже имеющийся в комстроке, и если в английской - применить к нему xlat() и далее запустить его на выполнение как алиасMaximus5 wrote: вы не написали, чего хотите достичь
Re: Как правильно применить kbdLayout()?
Что-то мне подсказывает, что вот это
не выполняет вот это
Code: Select all
%rskld=print(itoa(kbdLayout(),16));
Так чего вы все-таки хотели достичь постом №1?в какой раскладке набран текст, уже имеющийся в комстроке, и если в английской - применить к нему xlat() и далее запустить его на выполнение как алиас
Re: Как правильно применить kbdLayout()?
Получилось таки составить макрос, который позволяет удобно работать с макросами замечательного плагина MacroLib http://forum.farmanager.com/viewtopic.p ... 714#p74714 как с алиасами. То есть по их именам, введённым в комстроку.
И теперь мне можно просто набрать имя (алиас) нужного мне мароса в комстроке и нажать Enter на цифровой клавиатуре. И fml-макрос сработает. Сработает даже если ему дано имя "сравнить", а в строке оно набралось как "chfdybnm".
Мне так удобнее работать с переходами во множество нужных мест и во многих других случаях...
Code: Select all
macro Area="Shell" Key="CtrlShiftJ NumEnter" Name="исполнитьМакроЛайбом" Cond="CmdLine:1"
Priority=3
Descr="Содержимое комстроки выполнить как алиас плагина MacroLib (подстановкой префикса 'fml:Call ')"
{{
%%Clv=CmdLine.Value; CtrlY print(itoa(kbdLayout(),16)); clip(1,CmdLine.Value)
$if (clip(0) == 4090409)
CtrlY Print("fml:Call "+xlat(%%Clv,1)) Enter
$else
CtrlY Print("fml:Call "+%%Clv) Enter
$end
}}
Мне так удобнее работать с переходами во множество нужных мест и во многих других случаях...
- Attachments
-
- she-NumEnter-выполнитьFmlКакАлиас(c)sToLp.7z
- макрос для запуска fml-макросов как алиасов
- (1.03 KiB) Downloaded 176 times
Re: Как правильно применить kbdLayout()?
Спонтанно! ЗАЧЕМ, 25 текстовых строк пихать в архив? который весит больше fml ???
макрос неплох, но запустить макрос из ком строки можно любой! почему вы остановились только на .FML
макрос неплох, но запустить макрос из ком строки можно любой! почему вы остановились только на .FML
SimSU ··· ·· -- ··· ··-
Re: Как правильно применить kbdLayout()?
А вы пробовали присоединить fml-файл? Или хотя бы txt? А архивный файл присоединяется запросто.SUSim wrote:ЗАЧЕМ, 25 текстовых строк пихать в архив? который весит больше fml ???
Fml-макросы могут содержать поле Name= и таким образом через быстрый префикс (штатно - fml:call имяМакроса) запускаться по типу doskey-алиасов из комстроки. А как запустить из командной строки reg-макрос я не знаю. Про другие типы макросов я тоже не ведаю. И буду рад если просветите.SUSim wrote:макрос неплох, но запустить макрос из ком строки можно любой! почему вы остановились только на .FML
Re: Как правильно применить kbdLayout()?
надо бы в примеры в Писание поместить (или буду улучшалки?/копирайт не позволяет?)
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: Как правильно применить kbdLayout()?
Текст не надо «присоединять». Его нужно обрамить в тэг [code] и запостить открытым текстом. Чтобы потенциальный пользователь его сначала прочитал и осмыслил, потом скопировал, сохранил и заюзал. В случае же с аттачем вероятна ситуация «скачал, положил и начал использовать» без обязательного шага осмысления.sToLp wrote:А вы пробовали присоединить fml-файл? Или хотя бы txt? А архивный файл присоединяется запросто.SUSim wrote:ЗАЧЕМ, 25 текстовых строк пихать в архив? который весит больше fml ???
Re: Как правильно применить kbdLayout()?
А откуда уверенность в том, что kbdLayout() возвращает значение раскладки, в какой набран текст?sToLp wrote:хочу проверить в какой раскладке набран текст, уже имеющийся в комстроке, и если в английской - применить к нему xlat()
kbdLayout возвращает значение раскладки, включенной в данный момент.
1. Сейчас Eng
2. Набираем ghbdtn
3. Переключаем раскладку на Rus
4. вызываем макрос
каков результат?
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
Re: Как правильно применить kbdLayout()?
КМК, ситуация «не глядя набрал и ткнул энтер» случается чаще, чем «набрал, чего-то поделал, попереключал раскладку и т.п., а потом ткнул энтер».
Мешать может ну разве что в ситуации копипасты. И то, пятьдесят на пятьдесят. Но вообще это каждый должен индивидуально подбирать, какие юз-кейсы у него случаются чаще и что помогает, а что мешает. Например, мне не холодно и не жарко от этого kbdLayout, я печатаю глядя на экран. А перехожу в какие-то места чаще всего с помощью фильтра альтхистори.
Забавно, что макросами уже можно сделать аналоги плагинов HotFolders, NamedFolders, Alias. Кто во что горазд и кому что удобней.
Мешать может ну разве что в ситуации копипасты. И то, пятьдесят на пятьдесят. Но вообще это каждый должен индивидуально подбирать, какие юз-кейсы у него случаются чаще и что помогает, а что мешает. Например, мне не холодно и не жарко от этого kbdLayout, я печатаю глядя на экран. А перехожу в какие-то места чаще всего с помощью фильтра альтхистори.
Забавно, что макросами уже можно сделать аналоги плагинов HotFolders, NamedFolders, Alias. Кто во что горазд и кому что удобней.
Пользуюсь ФАРом больше 20 лет © собирательный.
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Как правильно применить kbdLayout()?
Желательно ещё обрамить в .Centaur wrote:Текст не надо «присоединять». Его нужно обрамить в тэг [code] и запостить открытым текстом.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Как правильно применить kbdLayout()?
Имхо.
Текст в теге
Текст в теге
[code]
и так уже ограничен, и не расползается больше минимума. Поэтому если макрос это основное содержание поста, то нет смысла его прятать, и этим заставлять всех до единого кликать по этому спойлеру.