Page 3 of 5

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

Posted: Thu 24 Oct, 2019 09:46
by 2useven10
Скрипт позволяет вводить символы через Alt+NNN в редакторе в его текущей кодировке.
Скрипт обрабатывает Event EditorInput, подменяя коды для диапазона [128, 255].
Без скрипта через Alt+NNN в редакторе вводятся коды символов в юникоде (UCS-2).
Также скрипт немного спрямляет самобытность (хаки) ConEmu и позволяет вводить такие коды
при запуске фар там, в том числе и в юникодных кодировках.
Editor_AltNumpad.lua
(6.67 KiB) Downloaded 256 times

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

Posted: Fri 25 Oct, 2019 21:41
by John Doe

Latest post of the previous page:

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

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

Posted: Fri 25 Oct, 2019 22:43
by Shmuel
HaRT wrote: Fri 25 Oct, 2019 20:34 Или можно просто парсить вывод ;)
Или так:

Code: Select all

function GetWinVer()
  local fp=io.popen"ver"
  local str = fp:read"*all"
  fp:close()
  return str:match("%S.+%S")
end

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

Posted: Sat 26 Oct, 2019 00:27
by 2useven10
Не вижу никаких проблем с FFI, кроме лишних приседаний.
Просто мне кажется 'это достаточно очевидный кандидат для win.*

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

Posted: Sat 26 Oct, 2019 10:07
by citRiks
В Far`е под ConEmu евент не требуется. Символы вводятся соответственно кодировкам.
М.б. оттуда в Far можно перенять что-то?

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

Posted: Sat 26 Oct, 2019 10:46
by 2useven10
citRiks, прежде чем давать советы, попытайтесь понять о чём идёт речь.

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

Posted: Sat 26 Oct, 2019 11:48
by citRiks
2useven10, Простите, если я необдуманно Вас чем-то нечяанно задел. Но советы давать я даже и не помышлял. Просто предположил, что возможно заинтересованные лица не обратили внимание на то, что под ConEmu символы вводятся нормально.

А предложенный Вами евент c благодарностью использую, поскольку Far без ConEmu применяется чаще.

И, по возможности, от пояснения о сути того, о чём идёт речь, не отказался бы. Полагая, при этом, что не один я такой не сведующий.

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

Posted: Sat 26 Oct, 2019 12:50
by 2useven10
citRiks wrote: Sat 26 Oct, 2019 11:48 под ConEmu символы вводятся нормально
Только что в редакторе фар под ConEmu в кодировке 1251 ввёл Alt 128 получил 'А' (в 1251 код 192), это нормально?

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

Posted: Sat 26 Oct, 2019 13:45
by citRiks
2useven10 wrote: Sat 26 Oct, 2019 12:50
citRiks wrote: Sat 26 Oct, 2019 11:48 под ConEmu символы вводятся нормально
Только что в редакторе фар под ConEmu в кодировке 1251 ввёл Alt 128 получил 'А' (в 1251 код 192), это нормально?
Действительно. Что-то уж очень сильно я напутал.
Потому, что и предложенный Вами эвент под ConEmu фактически не работает тоже, а только непосредственно в самом Far`е.
Посыпаю голову пеплом.

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

Posted: Sun 27 Oct, 2019 14:01
by 2useven10
Editor_AltNumpad.lua
(6.67 KiB) Downloaded 125 times
Новая версия.
1) должна работать в любой однобайтовой кодировке
2) должна работать с windows до win7 ('хорошие' окошки - с правильной отдачей UnicodeChar)
3) должна работать с ConEmu

Update: последняя версия скрипта в шапке.

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

Posted: Sun 27 Oct, 2019 19:29
by citRiks
2useven10 wrote: Sun 27 Oct, 2019 14:01 3) должна работать с ConEmu+'плохие' окошки (после win7). с хорошими просто хакать хаки ConEmu
не получается, поэтому пусть неуловимый джо бегает на свободе.
Не понятно что такое 'плохие' окошки и что такое 'хорошие'.

С задействованным эвентом в Win10 LTSC x64 rus Far 3.0.0.5498 x86 и x64 по Alt+250 в файле с кодировкой 65001 UTF-8 без ConEmu выводится знак ú (Dec: 250), а под ConEmu — знак · (Dec: 183).

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

Posted: Sun 27 Oct, 2019 20:18
by 2useven10
citRiks wrote: Sun 27 Oct, 2019 19:29 Не понятно что такое 'плохие' окошки и что такое 'хорошие'.
2useven10 wrote: Sun 27 Oct, 2019 14:01 до win7 ('хорошие' окошки - с правильной отдачей UnicodeChar)
есть шанс, что в win10 исправят тоже.
citRiks wrote: Sun 27 Oct, 2019 19:29 в файле с кодировкой 65001 UTF-8
2useven10 wrote: Sun 27 Oct, 2019 14:01 1) должна работать в любой однобайтовой кодировке
utf8 не однобайтовая кодировка - туда скрипт не вмешивается.

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

Posted: Sun 27 Oct, 2019 20:24
by 2useven10
Предыдущий скрипт работал только для кодировок 866 и 1251, только в русской локали, только в 'плохих' окошках (win7 и выше).
Оба скрипта влияют только на коды в диапазоне Alt+128..255, остальные коды не затрагиваются.

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

Posted: Mon 28 Oct, 2019 11:29
by 2useven10
Shmuel wrote: Fri 25 Oct, 2019 17:50 Вроде пока никому не требовалось, но не проблема добавить.
А что предложите взять за основу: GetProductInfo или что другое?
В новой версии скрипта есть реализация через ffi, для меня этого достаточно.

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

Posted: Mon 28 Oct, 2019 12:45
by Shmuel
2useven10 wrote: Mon 28 Oct, 2019 11:29 В новой версии скрипта есть реализация через ffi, для меня этого достаточно.
Позавчера была сделана реализация в LuaFAR (сообщаю для всех, кто не в курсе).

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

Posted: Mon 28 Oct, 2019 13:14
by 2useven10
Shmuel wrote: Mon 28 Oct, 2019 12:45 Позавчера была сделана реализация в LuaFAR (сообщаю для всех, кто не в курсе).
Здорово.
Жаль что этой реализацией не проверить, например, работу с windows10, 1903.

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

Posted: Mon 28 Oct, 2019 15:27
by 2useven10
Ссылка выше обновлена - учитываем изменения в far3 build 5497.