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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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, не удалось, то задаёте вопрос разработчикам.

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

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



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

Цитата:
поправил

Да.

Цитата:
Хотя...

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

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 17:39 23-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Понял, спасибо, тогда их имена сделаю короткими.
 
Добавлено:
Editor.TagsGotoBeginEnd.lua с Поиском тегов и выбором приоритета направления поиска.
 
citPiks
Вы не учитываете, что теги это не только HTML, но и XSL, а там в теле тега часто PHP код присутствует с операциями сравнения <>=, деления /, строки с любым содержанием и тд. и тп. + ещё могут быть битые теги без пар, либо с перепутанными парами, комментарии с любыми символами, текстовые блоки и тд. и тп., и это не говоря про простой мусор, в битых HTML.

Всего записей: 2252 | Зарегистр. 16-06-2007 | Отправлено: 17:42 23-09-2019 | Исправлено: Alexyz21, 01:39 24-09-2019
MetalliC1



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

Цитата:
лечится  far:config  Editor.CreateBackups=false  Editor.SaveSafely=false  

большое спасибо

Всего записей: 656 | Зарегистр. 02-12-2004 | Отправлено: 19:55 23-09-2019
citPiks



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

Цитата:
Editor.TagsGotoBeginEnd.lua с Поиском тегов  

Выделение происходит почти идеально. Спасибо.  
 
Со следующим небольшим нюансом. Для более точного изложения сути нюанса привожу пример реального блока из out.farconfig Far`а:

Код:
<filetype mask="*." description="ctPgDn &amp;x !.! - файл с именем в стиле &apos;Text UNIX&apos; поместить в редактор Фара">
    <command type="0" enabled="0" command="view:&quot;!=\!+!&quot;"/>
    <command type="1" enabled="1" command="edit:&quot;!=\!+!&quot;"/>
    <command type="2" enabled="0" command=""/>
    <command type="3" enabled="0" command="&quot;!=\!+!&quot;"/>
    <command type="4" enabled="0" command="edit:&quot;!=\!+!&quot;"/>
    <command type="5" enabled="0" command="&quot;!=\!+!&quot;"/>
</filetype>
 

Если перед активацией макроса курсор стоит в любом месте внутри блока между первой открывающей угловой скобой и последней закрывающей (включая сами эти скобки), то выделение соответствующего участка происходит верно. Т.е. выделяются либо соответствующая внутренняя строка, либо весь блок в целом.
 
Если же курсор стоит в любом месте последней строки блока за последней закрывающей угловой скобкой, то выделяется не весь блок, а только участок:

Код:
    <command type="5" enabled="0" command="&quot;!=\!+!&quot;"/>
</filetype>

А при повторном нажатии шорката из этой позиции выделенной остаётся только строка:  

Код:
<command type="5" enabled="0" command="&quot;!=\!+!&quot;"/>

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 20:21 23-09-2019 | Исправлено: citPiks, 20:23 23-09-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
 
В XML пустой тэг можно закрыть просто <tag atrib />  а не <tag atrib></tag>. Потому я просто использую возможности колорера по поиску пар - мне так удобнее...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 26722 | Зарегистр. 31-07-2002 | Отправлено: 20:33 23-09-2019
citPiks



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

Цитата:
использую возможности колорера

Вот спасибо за подсказку, что у колорера есть и иные функции кроме раскраски! И даже не одна! Прямо приятное открытие. Поизучаю.
 
А Alexyz21 вот для обращения с тегами приспосабливает Lua-плагин. Потом можно будет и результаты сравнить в чём-то возможно.
 
Добавлено:
Но уже и сейчас видно, что макрос, который он создаёт, кое в чём удобнее функций колорера. Например, макрос может выделить блок из любой позиции курсора между тегами, а колорер — нет.

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 21:35 23-09-2019 | Исправлено: citPiks, 21:45 23-09-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
 
Ну, каждый использует привычные инструменты. Я вот к примеру в cURL задействовал параллельную загрузку, но нужен cURL 7.66  - новые возможности добавлены в этой версии, а кому-то и старых возможностей хватает.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 26722 | Зарегистр. 31-07-2002 | Отправлено: 21:46 23-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Colorer хорош тогда, когда работает ) На битых файлах, либо на больших файлах, либо если имеются теги, которых он не знает, он останавливает раскраску, а скрипт работает всегда. Обновил.

Всего записей: 2252 | Зарегистр. 16-06-2007 | Отправлено: 00:33 24-09-2019
citPiks



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

Цитата:
Обновил

Вроде бы так стало намного лучше. Найду время и посмотрю ещё повнимательнее на разных файлах.

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 08:04 24-09-2019 | Исправлено: citPiks, 08:12 24-09-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
C выделением блоков как таковым пока что ни каких нюансов я не заметил, но ещё продолжу изыски.  
 
Теперь про работу диалога "Seek priority" в начале и в конце файла. Когда макрос активируется при нахождении курсора в самом начале файла, то безразлично нажимаю ли я Left или Right, найден и выделен будет блок, ближайший ниже по тексту. На мой взгляд, в этой ситуации целесообразнее было бы при выборе Left вести поиск назад, т.е. с конца файла выше. Аналогичная ситуация и с активацией макроса при нахождении курсора в конце файла — при нажатии кнопки Right выделяется блок, ближайший выше по тексту файла, а желательно бы в этом случае начинать искать с начала файла.

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 10:51 24-09-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Я согласен, что если файл длинный то колорер не успевает его быстро раскрасить. Но для этого у него есть настройки и я ими давно воспользоваться увеличив число раскрашиваемых строк. А битые файлы мгновенно ловятся при запуске в W3C валидаторе, браузере или сразу по просмотру хидера прогоняются через HTML Tody. По крайней мере симанка сразу сообщает о большей части ошибок, HTACG HTML Tidy official releases | GitHub (с основной страницы линки не видно - "удачный" подбор цветов в CSS) вводит исправленную страницу, хотя не проверяет кодировку и тут может дров наломать (она консольная и прекрасно управляема из командной строки). Правда поскольку мне "стеклобой" попадается редко, то и скрипты управления для тиди я не стал писать отложив это до момента когда и если она потребуется чаще. Я с гитхаба пользуюсь сборкой vc14-mt. Для ХР бери vc10 (зависимость MSVCR100.dll). а остальные (кроме MacOs X) - vc14 Vista, (зависимость  MSVCR140.dll), vc14-mt - Vista, статическая линковка, зависимостей нет (бинарник есть только на ГитХаб-е).

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 26722 | Зарегистр. 31-07-2002 | Отправлено: 11:25 24-09-2019 | Исправлено: Victor_VG, 12:01 24-09-2019
Alexyz21



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

Цитата:
Теперь про работу диалога "Seek priority" в начале и в конце файла. Когда макрос активируется при нахождении курсора в самом начале файла, то безразлично нажимаю ли я Left или Right, найден и выделен будет блок, ближайший ниже по тексту. На мой взгляд, в этой ситуации целесообразнее было бы при выборе Left вести поиск назад, т.е. с конца файла выше. Аналогичная ситуация и с активацией макроса при нахождении курсора в конце файла — при нажатии кнопки Right выделяется блок, ближайший выше по тексту файла, а желательно бы в этом случае начинать искать с начала файла.

Нажимаем CtrlEnd и ищем в обратную сторону. Не вижу смысла добавлять редко используемый код для того "чтобы было", особенно учитывая какие операции при этом необходимо выполнить. Алгоритм такой:
1. Нюхаем на что наступили - чистенько
2. Выводим диалог - в каком направлении сначала ищем, получаем ответ влево
3. Смотрим где находимся - на 1-ом символе
4. Получаем EGI, получаем количество строк, получаем длину последней строки
5. Перемещаем курсор в конец файла
6. Снова нюхаем и далее по плану.
 
п.1-5 лишь для того, чтобы юзер не напрягался нажать CtrlEnd - не рационально. Аналогично и при переходе с конца файла в начало.

Всего записей: 2252 | Зарегистр. 16-06-2007 | Отправлено: 11:50 24-09-2019 | Исправлено: Alexyz21, 11:52 24-09-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
После того, как блок найден и помечен, активация макроса приводит к перемещениям курсора туда-сюда между началом и концом блока. И это правильно.  
 
При этом желательно было бы дополнить это поведение также и перемещениями между соответствующими блоками вверх и вниз по тексту файла. Разумеется, уже другими шорткатами, например, ShiftUp и ShiftDn. Попробую пояснить это на примере.  
 
Допустим, в файле выделен определённый блок:  

Код:
<value name="AnsiAllowedCommands" type="multi">
    <line data="cmd -cur_console:R /cGitShowBranch.cmd"/>
</value>
<value name="ProcessCtrlZ" type="hex" data="00"/>
…  
<value name="StoreTaskbarCommands" type="hex" data="00"/>
<value name="CmdLineHistory" type="multi">
    <line data="notepad"/>
    <line data='Shell("new_console:sVn")'/>
   <line data='Shell(\"new_console:sVn\")'/>
</value>
<value name="SingleInstance" type="hex" data="00"/>
<value name="Multi" type="hex" data="01"/>
…  
<value name="AnsiExecution" type="hex" data="01"/>
<value name="EnvironmentSet" type="multi">
    <line data="set PATH=%ConEmuBaseDir%\Scripts;%PATH%"/>
</value>

 
Тогда, по нажатию ShiftUp вместо исходного пусть бы был выделен блок выше
<line data="notepad"/>
а затем следующий ещё выше
<line data="cmd -cur_console:R /cGitShowBranch.cmd"/>  
и т.д. вверх по тексту файла.  
 
Аналогично и в обратном направлении по ShiftDn — сначала  
<line data='Shell(\"new_console:sVn\")'/>
 а за ним  
<line data="set PATH=%ConEmuBaseDir%\Scripts;%PATH%"/>
и т.д. вниз по тексту файла.
 
Добавлено:

Цитата:
не рационально

Вполне понятно. Не возражаю. Но при этом тогда, по-моему,  желательно хотя бы при нахождении курсора в начале файла поиск влево не производить и аналогично в конце файла не делать поиск вправо, а то сбивает с толку.

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 11:51 24-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
Не так. - выше notepad value CmdHistory, он же и ниже Console. Это можно сделать, вопрос лишь в шоркатах - удобные и нативные, как обычно заняты, а брать такие, которые сам потом не вспомнишь - смысла нет. Но можно попробовать заюзать двойные нажатия.

Всего записей: 2252 | Зарегистр. 16-06-2007 | Отправлено: 11:59 24-09-2019 | Исправлено: Alexyz21, 11:59 24-09-2019
citPiks



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

Цитата:
Но можно попробовать заюзать двойные нажатия

Это, разумеется, целиком на Ваше усмотрение. Тем паче, что при особом желании пользователь то ведь может их потом и поменять.
 
Добавлено:
Alexyz21

Цитата:
удобные и нативные, как обычно заняты

А я для этого уже привык применять дублирование нативных ключей и прекрасную возможность второго ключа key2, обеспечиваемую скриптом key2Process.lua от IgorZ.
 
Например, составляю на ключ ShiftUp примерно такие примитивные макросы:

Код:
Macro { area="Editor"; key="ShiftUp"; key2="CtrlShiftUp"; sortpriority=0;
description="&Native: помечать блок от позиции курсора вверх по тексту";
action=function() Keys("ShiftUp") end; }
 
Macro { area="Editor"; key="CtrlShiftUp";
description="помечать блок от позиции курсора вверх по тексту ключом CtrlShiftUp";
action=function() Keys("ShiftUp") end; }
 
Macro { area="Editor"; key="ShiftUp"; key2="ShiftUp";
description="переход к следующему выделенному блоку выше";
action=function() far.Message("Осуществлён","Переход к блоку выше") end; }

И они выводят меню выбора:
 

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

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 12:05 24-09-2019 | Исправлено: citPiks, 13:12 24-09-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Закоммитил оптом:
 
FarUE3 b5478 Git-d6fb5fbcc (x86 и AMD64)  
 
1. Far b5478 Git-d6fb5fbcc
2. TorrentInfo v3.9.0.4040
3. Рефакторинг. Обновление требует b5477 и новее.

 
п.3. только для х86. Обновление с b5454 - b5476 до b5478 осуществляется программой Установка - это сделано специально т.к. "обновлялка" слишком разрослась.
 
И отдельно Torrent Info v3.9.0.4040 и Renewal v3.20.5.4040. x86 и AMD64, собрано для WinXP и новее (VC15).
 
 


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 26722 | Зарегистр. 31-07-2002 | Отправлено: 23:20 24-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Баг?
Подробнее...
Например курсор стоит на букве far.Message(), координаты (5,18), после вызова макроса ожидаю, что курсор сместится влево на 1 позицию, но этого не происходит, добавленный editor.Redraw не помог.
 
Добавление EditorId тоже ничего не меняет:
Подробнее...
И, имхо, неправильно, что поле называется EditorID, а в писании используется EditorId.
 
Я бы не отказался, если бы LFS возвращал не только nFound, nReps, но и результирующую позицию курсора, если LFS знает её в ходе выполнения операций.

Всего записей: 2252 | Зарегистр. 16-06-2007 | Отправлено: 09:28 25-09-2019 | Исправлено: Alexyz21, 09:58 25-09-2019
shmuz

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

Цитата:
Баг?

Передаются противоречивые данные в полях CurPos и CurTabPos. Фар выбирает второе.

Цитата:
И, имхо, неправильно, что поле называется EditorID, а в писании используется EditorId.

В писании это поле называется именно EditorID.

Всего записей: 1339 | Зарегистр. 09-03-2012 | Отправлено: 09:57 25-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поле да, но в описании аргументов функций используется Id - остальные же поля имеют идентичное написание и это, имхо, правильно.

Всего записей: 2252 | Зарегистр. 16-06-2007 | Отправлено: 10:01 25-09-2019
shmuz

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

Цитата:
Поле да, но в описании аргументов функций используется Id - остальные же поля имеют идентичное написание и это, имхо, правильно.

Так к кому претензия, непонятно, к фару или к луафару?

Всего записей: 1339 | Зарегистр. 09-03-2012 | Отправлено: 10:05 25-09-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru