Ввод спецсимволов в редакторе 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
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

Latest post of the previous page:

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

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 22:43

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

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

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

Post by 2useven10 » Sat 26 Oct, 2019 00:27

Не вижу никаких проблем с FFI, кроме лишних приседаний.
Просто мне кажется 'это достаточно очевидный кандидат для win.*

citRiks
Posts: 91
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 7 times

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

Post by citRiks » Sat 26 Oct, 2019 10:07

В Far`е под ConEmu евент не требуется. Символы вводятся соответственно кодировкам.
М.б. оттуда в Far можно перенять что-то?
Last edited by citRiks on Sat 26 Oct, 2019 13:48, edited 1 time in total.

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

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

Post by 2useven10 » Sat 26 Oct, 2019 10:46

citRiks, прежде чем давать советы, попытайтесь понять о чём идёт речь.

citRiks
Posts: 91
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 7 times

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

Post by citRiks » Sat 26 Oct, 2019 11:48

2useven10, Простите, если я необдуманно Вас чем-то нечяанно задел. Но советы давать я даже и не помышлял. Просто предположил, что возможно заинтересованные лица не обратили внимание на то, что под ConEmu символы вводятся нормально.

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

И, по возможности, от пояснения о сути того, о чём идёт речь, не отказался бы. Полагая, при этом, что не один я такой не сведующий.
Last edited by citRiks on Sat 26 Oct, 2019 13:47, edited 1 time in total.

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

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

Post by 2useven10 » Sat 26 Oct, 2019 12:50

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

citRiks
Posts: 91
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 7 times

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

Post by citRiks » Sat 26 Oct, 2019 13:45

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`е.
Посыпаю голову пеплом.

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

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

Post by 2useven10 » Sun 27 Oct, 2019 14:01

Editor_AltNumpad.lua
(6.67 KiB) Downloaded 8 times
Новая версия.
1) должна работать в любой однобайтовой кодировке
2) должна работать с windows до win7 ('хорошие' окошки - с правильной отдачей UnicodeChar)
3) должна работать с ConEmu

Update: последняя версия скрипта в шапке.
Last edited by 2useven10 on Wed 30 Oct, 2019 12:17, edited 6 times in total.

citRiks
Posts: 91
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 10 times
Been thanked: 7 times

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

Post by citRiks » Sun 27 Oct, 2019 19:29

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).

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

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

Post by 2useven10 » Sun 27 Oct, 2019 20:18

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 не однобайтовая кодировка - туда скрипт не вмешивается.

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

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

Post by 2useven10 » Sun 27 Oct, 2019 20:24

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

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

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

Post by 2useven10 » Mon 28 Oct, 2019 11:29

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

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

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

Post by Shmuel » Mon 28 Oct, 2019 12:45

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

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

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

Post by 2useven10 » Mon 28 Oct, 2019 13:14

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

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

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

Post by 2useven10 » Mon 28 Oct, 2019 15:27

Ссылка выше обновлена - учитываем изменения в far3 build 5497.

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

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

Post by HaRT » Mon 28 Oct, 2019 17:18

2useven10 wrote:
Mon 28 Oct, 2019 13:14
Жаль что этой реализацией не проверить, например, работу с windows10, 1903.
Даже через win.IsWinVersion(major,minor,servpack)?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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