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

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

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

Post by 2useven10 »

Скрипт позволяет вводить символы через Alt+NNN в редакторе в его текущей кодировке.
Скрипт обрабатывает Event EditorInput, подменяя коды для диапазона [128, 255].
Без скрипта через Alt+NNN в редакторе вводятся коды символов в юникоде (UCS-2).
Также скрипт немного спрямляет самобытность (хаки) ConEmu и позволяет вводить такие коды
при запуске фар там, в том числе и в юникодных кодировках.
Editor_AltNumpad.lua
(6.67 KiB) Downloaded 65 times
Last edited by 2useven10 on Wed 30 Oct, 2019 19:56, edited 5 times in total.
User avatar
HaRT
Moderator
Posts: 9561
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 111 times
Been thanked: 232 times

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

Post by HaRT »

Latest post of the previous page:

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: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

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

Post by Shmuel »

HaRT wrote: Fri 25 Oct, 2019 20:57 А, нет, нельзя. Они прямо в заголовочнике определены и помечены inline, т.ч. ни из какой системной либы не торчат.
Тем не менее, можно. Весь заголовочник, с некоторыми необходимыми доработками, помещается в FFI-файл.
Но это вроде ничем не удобнее включения данной функциональности в LuaFAR.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

Ввиду отсутствия встроенной функции когда-то решал вопрос детектирования XP/или выше путём проверки наличия определённого экспорта одной из системных библиотек. Где-то на форуме уже было.
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

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

Post 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
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

Не вижу никаких проблем с FFI, кроме лишних приседаний.
Просто мне кажется 'это достаточно очевидный кандидат для win.*
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

В Far`е под ConEmu евент не требуется. Символы вводятся соответственно кодировкам.
М.б. оттуда в Far можно перенять что-то?
Last edited by citRiks on Sat 26 Oct, 2019 13:48, edited 1 time in total.
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

citRiks, прежде чем давать советы, попытайтесь понять о чём идёт речь.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

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

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

И, по возможности, от пояснения о сути того, о чём идёт речь, не отказался бы. Полагая, при этом, что не один я такой не сведующий.
Last edited by citRiks on Sat 26 Oct, 2019 13:47, edited 1 time in total.
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

citRiks wrote: Sat 26 Oct, 2019 11:48 под ConEmu символы вводятся нормально
Только что в редакторе фар под ConEmu в кодировке 1251 ввёл Alt 128 получил 'А' (в 1251 код 192), это нормально?
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post 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`е.
Посыпаю голову пеплом.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

Editor_AltNumpad.lua
(6.67 KiB) Downloaded 21 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: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post 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).
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post 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 не однобайтовая кодировка - туда скрипт не вмешивается.
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

Предыдущий скрипт работал только для кодировок 866 и 1251, только в русской локали, только в 'плохих' окошках (win7 и выше).
Оба скрипта влияют только на коды в диапазоне Alt+128..255, остальные коды не затрагиваются.
Last edited by 2useven10 on Sun 27 Oct, 2019 20:28, edited 1 time in total.
2useven10
Posts: 4074
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

Shmuel wrote: Fri 25 Oct, 2019 17:50 Вроде пока никому не требовалось, но не проблема добавить.
А что предложите взять за основу: GetProductInfo или что другое?
В новой версии скрипта есть реализация через ffi, для меня этого достаточно.
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

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

Post by Shmuel »

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

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