Записная книжка
- Dennis_Moore
- Posts: 298
- Joined: Tue 03 Mar, 2015 19:54
- Location: Kiev
- Has thanked: 6 times
- Been thanked: 17 times
Записная книжка
Макрос на замену старому плагину Notebook. По Alt+Shift+F12 открывает из любой области файл %FARLOCALPROFILE%\Notebook.txt.
В дополнение будет полезен макрос для вставки разделителя по Ctrl+Alt+Backspace:
В дополнение будет полезен макрос для вставки разделителя по Ctrl+Alt+Backspace:
Last edited by Dennis_Moore on Fri 23 Jun, 2017 13:54, edited 8 times in total.
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Записная книжка
Keys("Enter Enter Home 73*= Enter Enter")
Last edited by HaRT on Thu 22 Jun, 2017 17:17, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- Dennis_Moore
- Posts: 298
- Joined: Tue 03 Mar, 2015 19:54
- Location: Kiev
- Has thanked: 6 times
- Been thanked: 17 times
Записная книжка
Ваш вариант хорош, возьму на заметку. Глянул строковые ф-ии lua, вставку строки можно было сделать так:
Code: Select all
print(string.rep("=", 73))
Исправил первое сообщение на ваш вариант.
Last edited by Dennis_Moore on Thu 22 Jun, 2017 17:40, edited 2 times in total.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Записная книжка
Для данного размера разделителя (73) все средства хороши. Но Keys - относительно медленная функция, например Keys("7300*=") у меня занимает более секунды. Поэтому предпочтительнее
rep
, причём разделитель формировать не в макросе, а вне его, как upvalue.- Dennis_Moore
- Posts: 298
- Joined: Tue 03 Mar, 2015 19:54
- Location: Kiev
- Has thanked: 6 times
- Been thanked: 17 times
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Записная книжка
Не совсем учтено - сепаратор у вас формируется внутри макроса.
Code: Select all
local sep = string.rep("=", 73)
Macro {
....
}
- Dennis_Moore
- Posts: 298
- Joined: Tue 03 Mar, 2015 19:54
- Location: Kiev
- Has thanked: 6 times
- Been thanked: 17 times
Записная книжка
Изменил. А почему лучше вне макроса ?
Upd.: Погуглил слово upvalue
Last edited by Dennis_Moore on Thu 22 Jun, 2017 20:36, edited 2 times in total.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Записная книжка
В данном случае - всё равно (экономия на спичках). А в общем случае - макрос будет выполняться быстрее, так как он будет брать уже готовый сепаратор, а не создавать его при каждом исполнении.
- Dennis_Moore
- Posts: 298
- Joined: Tue 03 Mar, 2015 19:54
- Location: Kiev
- Has thanked: 6 times
- Been thanked: 17 times
Записная книжка
Я на ru-board немного прокомментировал изменения:
Victor_VG
Спасибо за интерес к моему скромному макросу
Вообще я знаю о других макросах вставки разделителей и TrueTemplate, но для меня вся соль в Keys() обрамляющих вставку разделителя
Victor_VG
Спасибо за интерес к моему скромному макросу
Это фаровский форум съел один nil когда я нажал там Ctrl+Backspace, забыл поправить (исправил в теме)оригинал выдаёт ошибку в строке editor.Editor(notebook_path, title, nil, nil, nil, flags, nil, nil, codepage)
хоткей правильный, именно BackSlash (кнопка на которой нарисованы \ и |)не вызывается макрос Separor из-за неверного хоткея
Это зря, лично я вызываю макрос не только в этом файле и не только в *.txt.filemask="Notebook.txt";
Были еще End (для возможности вставки разделителя находясь в середине строки) и Home (у меня включена настройка редактора Auto indent)local sep = "\n\n"..string.rep("=", 73).."\n\n";
Вообще я знаю о других макросах вставки разделителей и TrueTemplate, но для меня вся соль в Keys() обрамляющих вставку разделителя
Last edited by Dennis_Moore on Fri 23 Jun, 2017 14:11, edited 1 time in total.