Организация макросов, пользовательские хоткеи, настройки, …

Здесь обсуждается всё, что касается макросов.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Организация макросов, пользовательские хоткеи, настройки

Post by Wave »

Latest post of the previous page:

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

© SimSU: Panel — Переименование с сохранением расширения.
© SimSU: Editor — Уменьшение отступа помеченного блока.
Shell: создание папки с именем = текущей дате
RESearch: Shell - ShiftF7

Это ОЧЕНЬ помогает находить нужные макросы в макробраузере и всё такое. Дополнительный уровень сортировки.
Так что rebind для меня не так чтобы слишком полезен. Он не снимает необходимость лезть в исходный макр. В общем, если предложение пройдёт, то пожелание также уметь переопределять описание макроса.

Второе. Дошли-таки руки начать вносить макросы в FarMenu.ini и Editor.Menu.lua. И оказалось, что великолепно всё работает даже если ставить макросам шоткаты типа calend и checkspel. Да, макросы при этом вызываются ТОЛЬКО из меню, но зато полностью исключаются конфликты шоткатов. А заодно шоткаты стали немного намекать на то, что они делают.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Организация макросов, пользовательские хоткеи, настройки

Post by John Doe »

Wave wrote:Как бы мне не хотелось не трогать скачаные макросы, но вообще-то я их устанавливаю одновременно редактируя дескрипшн. В таком стиле:

© SimSU: Panel — Переименование с сохранением расширения.
© SimSU: Editor — Уменьшение отступа помеченного блока.
Shell: создание папки с именем = текущей дате
RESearch: Shell - ShiftF7

Это ОЧЕНЬ помогает находить нужные макросы в макробраузере и всё такое. Дополнительный уровень сортировки.
Сценарий использования мне пока не до конца ясен.
Важно ДЛЯ ЧЕГО вы ищете макросы, и что с ними далее делаете.

Менять комментарий с помощью rebind тоже ВОЗМОЖНО, но прежде давайте рассмотрим другие варианты решения, доступные в MacroBrowser alt.
  • Перед тем, как искать макросы в огромном списке, можно применить фильтр. По имени файла, по области, и т.д.
  • Можно (планируется) выводить дополнительную колонку с именем файла (сортировка по файлу есть).
    Есть режим группировки: все макросы группируются согласно файлу, в котором определены.
  • Можно (в перспективе) выводить дополнительную колонку с тагами, которые вы можете задавать сами для каждого макроса.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Организация макросов, пользовательские хоткеи, настройки

Post by John Doe »

Wave wrote:Второе. Дошли-таки руки начать вносить макросы в FarMenu.ini и Editor.Menu.lua. И оказалось, что великолепно всё работает даже если ставить макросам шоткаты типа calend и checkspel. Да, макросы при этом вызываются ТОЛЬКО из меню, но зато полностью исключаются конфликты шоткатов. А заодно шоткаты стали немного намекать на то, что они делают.
eval нельзя назвать удобным средством вызывать макросы из меню.
Такие макросы по сути уже не являются макросами, и по хорошему их стоит поместить в библиотеку функций (которые можно назвать как угодно).

Но ваша идея мне тоже нравится. И ведь не обязательно заменять шорткат, иногда лучше его дополнить, просто добавив ещё одно имя, по которому вы будете вызывать его из своих меню.
Rebind кстати эту задачу успешно решает.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: Организация макросов, пользовательские хоткеи, настройки

Post by Wave »

1. Повторюсь — дополнительный уровень фильтрации. Например, увидеть только макросы для панелей, причём, из них только макросы из набора SimSU. Причём, увидеть сразу, не фильтруя, потому что они уже отсортированы. Собственно браузером макросов я пользовался ещё во втором ФАРе, когда до луа было далеко, а макробраузер был нативным плагином. Именно тогда завёл себе такую практику. Может быть сейчас это уже не нужно, если привыкнуть активно фильтровать макры, запомнить все хоткеи и возможности MacroBrowser alt., но я не так часто им пользуюсь, чтобы на память всё знать. Вот занялся давеча макросами, мне пришлось лезть в файл, чтобы вспомнить, как этот макробраузер вызвать. И читать справку, чтобы вспомнить, где какая сортировка. Не говоря уже о том, что некоторые колонки мне не совсем понятны. Например, что за галочки стоят перед некоторыми макросами? Перед колонкой макрообластей.
На таких условиях мне удобней отсортировать по описаниям, где сразу видно, к чему относится макрос.

2. Что поделать, если эта библиотека функций оформлена именно как макрос? И хорошо если в этом макросе есть отдельно функция, а отдельно её вызов по хоткею, тогда в принципе её можно отправить в модули и из меню вызывать именно как require "mymacros"; functionOfMacros(argument); А если нет? Зачем оно мне нужно именно в меню, я уже писал. А чтобы организовать это всё у себя «правильно», мне нужно гораздо плотнее и глубже это всё освоить-перебрать и переписать много чего скачанного с форума. Либо просто закинуть в scripts и засунуть в меню eval("hotkey", 2);
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Организация макросов, пользовательские хоткеи, настройки

Post by John Doe »

Wave wrote:[...]запомнить все хоткеи и возможности MacroBrowser alt., но я не так часто им пользуюсь, чтобы на память всё знать. Вот занялся давеча макросами, мне пришлось лезть в файл, чтобы вспомнить, как этот макробраузер вызвать. И читать справку, чтобы вспомнить, где какая сортировка.
Нижний заголовок списка содержит основные клавиши, их достаточно для эпизодического использования.
Wave wrote:Не говоря уже о том, что некоторые колонки мне не совсем понятны. Например, что за галочки стоят перед некоторыми макросами? Перед колонкой макрообластей.
Перед колонкой макрообластей галка обозначает то же, что и в штатном браузере: макросы, применимые к области, из которой вы вызвали браузер. Ctrl-H фильтрует список соответственно.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Организация макросов, пользовательские хоткеи, настройки

Post by John Doe »

Wave wrote:1. Повторюсь — дополнительный уровень фильтрации. Например, увидеть только макросы для панелей, причём, из них только макросы из набора SimSU. Причём, увидеть сразу, не фильтруя, потому что они уже отсортированы.[...]
На таких условиях мне удобней отсортировать по описаниям, где сразу видно, к чему относится макрос.
Но чтобы достичь этого вам пришлось вручную править описания.
А MacroBrowser alt. мог бы дать ту же возможность одним нажатием: имя файла начинается с SimSU, описания отсортированы, отображаются только макросы Shell.
Wave wrote:2. Что поделать, если эта библиотека функций оформлена именно как макрос?
Я ведь выше и написал, что ваша идея хороша, и имена даже можно добавлять к имеющимся шорткатам.
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Организация макросов, пользовательские хоткеи, настройки

Post by AleXH »

Т.е. частично вопрос можно решить добавлением в MBA автогенератора описания, берущего по uid сопоставленный ник, добавляет двоеточие с пробелом, область действия с точкой и пробелом, и уже после описание. Вопрос лишь в том, что нужен некий "стандарт" в описании макросов.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Организация макросов, пользовательские хоткеи, настройки

Post by John Doe »

Я очень сомневаюсь, что можно рассчитывать на какой-то стандарт в обозримом будущем.
Реальнее сделать в MBA кастомную колонку по заданному шаблону. Вместо автора использовать таг.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by gotar »

John Doe, используете ли Вы все о чем Вы здесь писали? В частности, работает ли rebind после изменения возвращаемого значения у AddMacro?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Организация макросов, пользовательские хоткеи, настройки, …

Post by John Doe »

gotar wrote: используете ли Вы все о чем Вы здесь писали?
Использую.
Всё ли - не знаю, уточните вопрос.
gotar wrote: работает ли rebind
Да, с этим исправлением http://forum.farmanager.com/viewtopic.p ... 81#p133781
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by gotar »

Могли бы Вы опубликовать тот rebind, которым Вы пользуетесь?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Организация макросов, пользовательские хоткеи, настройки, …

Post by John Doe »

Я год к нему не прикасался, и даже не помню в каком он состоянии.
Функций там не добавилось.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by gotar »

У меня при старте Far выдается
при удалении rebind.lua из modules ругается только _macroinit.lua. Не могли бы Вы проверить, что в _macroinit.lua у Вас есть ?
Last edited by gotar on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [spoiler]
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Организация макросов, пользовательские хоткеи, настройки, …

Post by John Doe »

У меня так:

Code: Select all

local rebind = require"rebind"
if rebind then
  --rebind.Setup{auto_uids=true}
  rebind.Setup {auto_uids=true,no_warnings=true}
  rebind.LoadBindings()
end
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by gotar »

Ошибка в строчке debug.setupvalue (LoadMacros, iAddMacro, AddMacroNew)в файле rebind.lua. При этом LoadMacros и AddMacroNew функции, а iAddMacro маленькое целое число. Может подскажите в чем дело?
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Организация макросов, пользовательские хоткеи, настройки, …

Post by gotar »

Я думаю, что проблема где то в этом коде

Code: Select all

do --get LoadedMacros, set AddMacro
  local function getUpvalue(f,name)
    for i=1,1000 do
      local k,v = debug.getupvalue (f, i)
      if k==nil then
        error("unable to get upvalue: "..name)
      end
      if k==name then return v, i end
    end
  end
  LoadedMacros = getUpvalue(mf.GetMacroCopy,"LoadedMacros")
  local LoadMacros = getUpvalue(eval,"utils").LoadMacros
  local AddMacro,iAddMacro = getUpvalue(LoadMacros,"AddRegularMacro")
  if not mf.AddMacro then mf.AddMacro = AddMacro end
  far.Show(AddMacroNew)
  debug.setupvalue (LoadMacros,iAddMacro,AddMacroNew)
end
У Вас также?
Post Reply

Return to “Обсуждение макросов”