Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)

Модерирует : gyra, Maz

Maz (15-01-2020 17:38): FAR Manager (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Предыдущие топики:  1 2 3 4
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
Архив всех предыдущих ночных сборок FAR
Last release на github - собирается практически сразу (в течение получаса) после каждого коммита.
 
Общие сведения о совместимости FAR и плагинов
 
Можно воспользоваться одной из пользовательских сборок FAR Manager
Вопросы, касающиеся сборок, следует задавать непосредственно их авторам, а не на официальном форуме.
 
Где взять дополнительные плагины, скрипты и макросы?
Плагринг. В настоящее время большинство авторов (возможно, уже и все) выкладывают плагины здесь. Кроме плагинов здесь появляется всё относящиеся к FAR: дополнения, консольные шрифты, скрипты и пр.
Анонсы плагинов на официальном форуме. Даже если автор не выкладывает по каким-либо причинам плагин на плагринге, он может дать анонс в этой теме.
Полезные скрипты и макросы.
 
Инструкции по сборке ФАРа из исходников
Набор для самостоятельной сборки ФАРа
Как собрать FAR самостоятельно (старая инструкция)  
 
Ссылки на устаревшие версии
Выдержка из Far Manager Site and Forum ‹ FAQ :
Отличия FAR 3 от FAR 2
Отличия FAR 2 от FAR 1.7
 
Примечания
 
* 13 декабря 2008 г. произошло переименование веток: ANSI-ветка 1.71 превратилась в 1.75, а Unicode-ветка получила номер версии 2.0 (вместо 1.80). Т.е. версии 1.хх это ANSI ("старый" FAR), а версии 2.хх – Unicode ("новый" FAR). Эти ветки сильно различаются по способу взаимодействия с плагинами и системой!
* При обновлении ANSI-ветки 1.хх более старые версии плагинов могут работать в более новом FAR, но более новые плагины в большинстве случаев требуют обновления FAR (см. документацию).
* Unicode-плагины в ANSI-версии FAR не работают – у них иной способ взаимодействия (API) с Far.exe, поэтому даже не пытайтесь их использовать в FAR версии ниже 1.80.
* При обновлении Unicode-версии FAR 1.80/2.0/3.0 обращайте внимание на номер сборки: следует обязательно обновить все плагины для сборок 677/680/684, иначе они не будут работать. ANSI-плагины (кроме тех, которые работают в редакторе) можно применять в Unicode-версии FAR, в меню плагинов (вызываемом по F11) они будут помечены значком [A] справа от их имени. Unicode-плагины в FAR 1.80/2.x/3.х никаким значком после имени не помечаются.
* Unicode-версия FAR 1.80/2.x/3.х требует как минимум Windows 2000, т.е. она работает только в Windows 2000/XP/2003/Vista/2008/7/8/10.
* Плагины от FAR 2 несовместимы с FAR 3 и не запустятся.
* В FAR 3 выборочно могут работать плагины от FAR 1, однако не стоит брать от FAR 1 плагины для редактора или работающие с дисками: первые портят текст в Юникоде, вторые – файловую систему.
* В любом случае разрядность плагинов должна совпадать с разрядностью FAR, иначе плагин не будет загружен.
* Блондинку на скриншоте зовут Tommie Jo.

 
Принципиальные различия между hard link, symlink и junction
Как устранить взаимное влияние запущенных копий FAR в памяти
Как запустить Lua/MoonScript из FAR
Как правильно добавить в программу нужную DLL (или иную зависимость), чтобы при обновлении ОС или иных программ она не перестала работать
Патч для ansi-плагинов для хранения настроек плагинов в папке профиля, а не в реестре
Как распаковать UUE/XXE файлы патчей и использовать их?
 
ВНИМАНИЕ!
 
Правильное (корректное) завершение Far: всегда завершайте сеанс работы с Far по F10! Подробнее на форуме - Различие выхода из Far по F10 и крестиком
 
Общие правила обращения за помощью
  1. Решаете задачу самостоятельно, при необходимости ищете ответы в теме и других источниках. Предварительное изучение документации обязательно!
  2. Если ваших знаний не хватает, то задаёте вопрос в форуме и строго следуете инструкциям тех людей, которые вам помогают.
  3. Если решить задачу, следуя пунктам 1 и 2, не удалось, то задаёте вопрос разработчикам.

Невыполнение этих правил ведёт к тому, что никто не станет помогать решать вашу задачу.

Всего записей: 38741 | Зарегистр. 26-02-2002 | Отправлено: 18:55 23-11-2017 | Исправлено: Victor_VG, 10:00 09-09-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
shmuz
10.0.17763.615, 3.0.0.5452 x64, обе 0

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 15:15 21-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Спасибо. Значит надо в Фаре доработать KbdLayout() для Windows 10 (если это возможно).
Поскольку у меня доступа к десятке пока нет, то надежда на wseventeen и DrKnS.
 
Добавлено:
zg упуcтил

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 15:36 21-08-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
shmuz
У меня в 10ке GetKeyboardLayout выдает 00000409 (ну или 00000419)

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 15:54 21-08-2019 | Исправлено: Pasha_ZZZ, 15:55 21-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Это OK, это даже в фаровской энциклопедии упомянуто.
Надо смотреть, почему ф-ция kbdLayoutFunc() в macro.cpp возвращает 0 на десятке.

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 16:01 21-08-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
shmuz
Я там сразу и смотрел. При передаче 0 в функу там вообще кода мало выполняется. Вариантов получить 0 совсем практически нет, только если Layout=0.

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 16:28 21-08-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В фар зовется недокументированная ф-я GetConsoleKeyboardLayoutNameW(Buffer);
Она перестала работать после Win7.
На Win10 у меня ожидаемый результат даёт ф-я GetKeyboardLayout() - 0x04090409.
GetKeyboardLayoutNameW(Buffer) тоже работает, но результат '00000409'.
Вопрос в правомерности использования этих ф-й в консольном (не гуёвом) приложении.

Всего записей: 1415 | Зарегистр. 20-12-2007 | Отправлено: 16:44 21-08-2019 | Исправлено: wseventeen, 16:45 21-08-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
wseventeen
Цитата:
На Win10 у меня ожидаемый результат даёт ф-я GetKeyboardLayout() - 0x04090409.
Я скомпилил консольную приложуху и она у меня на 10ке дает 00000409
 
Добавлено:
Там в начале и в конце результата знаки =, чтобы удостовериться, что нет никаких невидимых символов - https://www.upload.ee/files/10382748/GetKeyLayout.zip.html

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 16:48 21-08-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ Вы зовёте GetKeyboardLayoutName()

Всего записей: 1415 | Зарегистр. 20-12-2007 | Отправлено: 17:03 21-08-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Pasha_ZZZ
Да, просто Layout выдает 0x04090409, LayoutName выдает 00000409, а недокументированная выдает 0.
https://yury-finkel.livejournal.com/418844.html
 
Добавлено:
Переделал проверялку, теперь она выдает и Layout, и LayoutName - https://www.upload.ee/files/10382818/GetKeyLayout.zip.html
 
Добавлено:
Недокументенная функа возвращает ошибку на 10ке, так что дополнительные проверки не требуются. Просто в console.cpp функцию console::GetKeyboardLayoutName(string &strName) чуть переделать и вместо return false добавить дополнительный if с вызовом GetKeyboardLayoutName (у них с уже использованной формат вывода подходящий). А уж если эта не удалась - тогда return false

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 17:03 21-08-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В общем, с раскладками облом в 10ке - DrKnS ответил
Цитата:
GetKeyboardLayoutName всегда возвращает тот layout, который был в момент запуска консоли, и нет, в 10 это не починили.
Именно поэтому в Far используется недокументированная альтернатива.

 
И вот ошибка на гитхабе, уже давненько...
https://github.com/microsoft/terminal/issues/83#issuecomment-523590278

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 22:53 21-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DrKnS также сообщил следующее:

Цитата:
There's an undocumented functiton GetConsoleKeyboardLayoutNameW in kernel32.dll .........
And it still works as expected in legacy console mode.

То есть, если установить на ярлыке Фара legacy mode, то будет работать.

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 23:22 21-08-2019
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
shmuz
Да, будет. Только все вообще консольные окошки перейдут в легаси режим

Всего записей: 12360 | Зарегистр. 11-03-2002 | Отправлено: 23:34 21-08-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для интереса на машине с установленной "Windows 10 Корпоративная 2016 с долгосрочным обслуживанием x64, процессор x64" выставил в ярлыке свежей ночной сборки: "[v] Использовать прежнюю версию консоли".  
 
lua:=Far.KbdLayout(0) в русской раскладке выдаёт: -1610611687, а в английской: 67699721.
 
Уточнение: выше приведены данные из Far x86, а в Far x64 в русской раскладке показание другое: 2684355609, а в английской тоже: 67699721.

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 11:59 22-08-2019 | Исправлено: citPiks, 12:40 22-08-2019
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может стоит воспользоваться сторонней либой какой-нить.
Или сделать минилибу своими руками - ток на основе C# кода. Там вроде рабочий вариант проперти Windows.Globalization.Language.CurrentInputMethodLanguageTag есть.
 
P.S. хотя вроде даже есть возможность в студийном проекте сделать компиляцию вызовов C# кода нативно...

Цитата:
Compile your C++ code with the /clr flag. With that, you can call into any .NET code with relative ease.

Код:
 
#include <tchar.h>
#include <stdio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    System::DateTime now = System::DateTime::Now;
    printf("%d:%d:%d\n", now.Hour, now.Minute, now.Second);
 
    return 0;
}

 

Всего записей: 3262 | Зарегистр. 01-04-2006 | Отправлено: 12:06 22-08-2019 | Исправлено: destiny_child, 12:08 22-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
Для получения нормально выглядящих результатов, делайте так:

Код:
lua: =("0x%08X"):format(Far.KbdLayout(0))

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 13:03 22-08-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
lua: =("0x%08X"):format(Far.KbdLayout(0))  

В Far x86 в русской раскладке: 0xA0000419, в английской: 0x04090409.
 
В Far x64 в русской раскладке: 0xA0000419, в английской: 0x04090409.

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 13:13 22-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
Если вы будете работать в режиме legacy, то можно использовать такие condition:

Код:
condition=function() return band(0xFFFF, Far.KbdLayout(0)) == 0x0409; end; -- для англ. раскладки
condition=function() return band(0xFFFF, Far.KbdLayout(0)) == 0x0419; end; -- для русск. раскладки  

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 19:44 22-08-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz

Цитата:
Если вы будете работать в режиме legacy

Иногда наверняка. Проверил:

Цитата:

Код:
condition=function() return band(0xFFFF, Far.KbdLayout(0)) == 0x0409; end; -- для англ. раскладки
Это условие работает.

Цитата:

Код:
condition=function() return band(0xFFFF, Far.KbdLayout(0)) == 0x0419; end; -- для русск. раскладки
А это нет. В т.ч. в этом случае при удвоении макроса меню выбора не выводится.

Исправлено: впоследствии выяснилось, что испытание было проведено не корректно. Т.е. это условие тоже работает.

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 21:51 22-08-2019 | Исправлено: citPiks, 22:41 22-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
А что показывает эта команда на каждой из раскладок?
lua: =("%X"):format(band(0xFFFF, Far.KbdLayout(0)))

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 21:58 22-08-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В русской 419, в английской 409.

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 22:00 22-08-2019
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)
Maz (15-01-2020 17:38): FAR Manager (часть 6)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru