Ввод спецсимволов в редакторе Far

Здесь выкладываются готовые к использованию макросы и скрипты.
2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Ввод спецсимволов в редакторе Far

Post by 2useven10 » Thu 24 Oct, 2019 09:46

Скрипт позволяет вводить символы через Alt+NNN в редакторе в его текущей кодировке.
Скрипт обрабатывает Event EditorInput, подменяя коды для диапазона [128, 255].
Без скрипта через Alt+NNN в редакторе вводятся коды символов в юникоде (UCS-2).
Также скрипт немного спрямляет самобытность (хаки) ConEmu и позволяет вводить такие коды
при запуске фар там, в том числе и в юникодных кодировках.
Editor_AltNumpad.lua
(6.67 KiB) Downloaded 21 times
Last edited by 2useven10 on Wed 30 Oct, 2019 19:56, edited 5 times in total.

User avatar
DrKnS
Posts: 5437
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 253 times

Ввод спецсимволов в редакторе Far

Post by DrKnS » Fri 25 Oct, 2019 13:25

Latest post of the previous page:

Shmuel wrote:
Fri 25 Oct, 2019 10:48
из Фара приходит некорректное значение UnicodeChar
Из ОС - см. changelog к билду 1053.
В фар тогда был добавлен костыль, восстанавливающий введённый символ, однако, без правки исходного input record.

User avatar
DrKnS
Posts: 5437
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 253 times

Ввод спецсимволов в редактрое Far

Post by DrKnS » Fri 25 Oct, 2019 14:34

Написал им.
Как обычно - голосование помогает привлечь внимание.

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Ввод спецсимволов в редактрое Far

Post by 2useven10 » Fri 25 Oct, 2019 17:36

Видимо надо учить скрипт различать версии окошек.
Старые версии работают (и возможно новые будут) более адекватно.
@Shmuel в win.* не планируется IsWindows(...) ?

Shmuel
Posts: 5927
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Ввод спецсимволов в редактрое Far

Post by Shmuel » Fri 25 Oct, 2019 17:50

2useven10 wrote:
Fri 25 Oct, 2019 17:36
в win.* не планируется IsWindows(...) ?
Вроде пока никому не требовалось, но не проблема добавить.
А что предложите взять за основу: GetProductInfo или что другое?

P.S. GetProductInfo не годится, т.к.

Code: Select all

Minimum supported client 	Windows Vista [desktop apps only]
Minimum supported server 	Windows Server 2008 [desktop apps only]
P.P.S. Модераторы: если не трудно, исправьте опечатку в заголовке темы.
Last edited by Shmuel on Fri 25 Oct, 2019 18:24, edited 2 times in total.

User avatar
John Doe
Бюрократ
Posts: 12538
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 239 times

Ввод спецсимволов в редакторе Far

Post by John Doe » Fri 25 Oct, 2019 18:36


Shmuel
Posts: 5927
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Ввод спецсимволов в редакторе Far

Post by Shmuel » Fri 25 Oct, 2019 18:50

Там написано
GetVersionEx may be altered or unavailable for releases after Windows 8.1. Instead, use the Version Helper functions]
14 функций надо добавлять, но однотипных и элементарных.

User avatar
HaRT
Moderator
Posts: 9169
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Ввод спецсимволов в редакторе Far

Post by HaRT » Fri 25 Oct, 2019 18:52

Shmuel wrote:
Fri 25 Oct, 2019 18:50
14 функций надо добавлять, но однотипных и элементарных.
Не лучше ли 2 (последних) функции и 12 констант?
Last edited by HaRT on Fri 25 Oct, 2019 18:55, edited 1 time in total.
Reason: 1+14 —> 2+12
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5927
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Ввод спецсимволов в редакторе Far

Post by Shmuel » Fri 25 Oct, 2019 18:55

HaRT wrote:
Fri 25 Oct, 2019 18:52
Не лучше ли 2 (последних) функции и 12 констант?
Или просто обойтись двумя последними функциями?

P.S. Наверное, если уж добавлять, то добавить "в лоб", без самопальных модификаций. И документировать легче в этом случае.
Last edited by Shmuel on Fri 25 Oct, 2019 19:03, edited 3 times in total.

User avatar
HaRT
Moderator
Posts: 9169
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Ввод спецсимволов в редакторе Far

Post by HaRT » Fri 25 Oct, 2019 19:01

Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5927
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Ввод спецсимволов в редакторе Far

Post by Shmuel » Fri 25 Oct, 2019 19:04

HaRT wrote:
Fri 25 Oct, 2019 19:01
нет ли планов перейти на Lua 5.4 (хотя бы ради const)?
Тогда придётся пожертвовать LuaJIT'ом и FFI. Поэтому, видимо, нет.

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Ввод спецсимволов в редакторе Far

Post by 2useven10 » Fri 25 Oct, 2019 20:11

Imho достаточно одной - IsWindows(os[, build]):
IsWindows("XP")
IsWindows("7")
IsWindows("8.1")
IsWindows("10", 15063)

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Ввод спецсимволов в редакторе Far

Post by 2useven10 » Fri 25 Oct, 2019 20:16

Для этого нужна только VerifyVersionInfo() - есть уже в win2k.
ну и перевод os - ver_major, ver_minor

2useven10
Posts: 3985
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 175 times

Ввод спецсимволов в редакторе Far

Post by 2useven10 » Fri 25 Oct, 2019 20:31

Можно ещё сервиспак проверять - IsWindows("XP", "2.0"), базовая ф-я та же самая.

User avatar
HaRT
Moderator
Posts: 9169
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Ввод спецсимволов в редакторе Far

Post by HaRT » Fri 25 Oct, 2019 20:34

Или можно просто парсить вывод ;)
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9169
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Ввод спецсимволов в редакторе Far

Post by HaRT » Fri 25 Oct, 2019 20:57

Shmuel wrote:
Fri 25 Oct, 2019 18:50
GetVersionEx may be altered or unavailable for releases after Windows 8.1. Instead, use the Version Helper functions]
14 функций надо добавлять, но однотипных и элементарных.
А нельзя их просто через FFI дёрнуть? Наивно у меня не получилось, а как правильно, я не знаю.
22:59 MSK
А, нет, нельзя. Они прямо в заголовочнике определены и помечены inline, т.ч. ни из какой системной либы не торчат.
Last edited by HaRT on Fri 25 Oct, 2019 20:59, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5927
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Ввод спецсимволов в редакторе Far

Post by Shmuel » Fri 25 Oct, 2019 21:10

HaRT wrote:
Fri 25 Oct, 2019 20:57
А, нет, нельзя. Они прямо в заголовочнике определены и помечены inline, т.ч. ни из какой системной либы не торчат.
Тем не менее, можно. Весь заголовочник, с некоторыми необходимыми доработками, помещается в FFI-файл.
Но это вроде ничем не удобнее включения данной функциональности в LuaFAR.

User avatar
John Doe
Бюрократ
Posts: 12538
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 239 times

Ввод спецсимволов в редакторе Far

Post by John Doe » Fri 25 Oct, 2019 21:41

Ввиду отсутствия встроенной функции когда-то решал вопрос детектирования XP/или выше путём проверки наличия определённого экспорта одной из системных библиотек. Где-то на форуме уже было.

Post Reply

Return to “Полезные макросы и скрипты”