Pull to refresh

Comments 60

9 лет, чтобы повторить блокнот и назвать это победой ИИ

Это если б редактор с нуля писался, было бы «повторить Блокнот». А тут изменение конструкции работающего реактивного двигателя в полете: реализация фичи поверх очень запутанного legacy кода и так чтобы точно не сломать ничего.

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

Ещё консольные версии vim/emacs. Там, конечно, это всё это тоже есть

Угу, технически есть. На практике для vim, например, надо написать для этого вот такой конфиг (~/.vimrc):

set wrap

set linebreak

set nolist

set showbreak=↪\

set breakindent

nnoremap <expr> j v:count == 0 ? 'gj' : 'j'

nnoremap <expr> k v:count == 0 ? 'gk' : 'k'

nnoremap <expr> 0 v:count == 0 ? 'g0' : '0'

nnoremap <expr> ^ v:count == 0 ? 'g^' : '^'

nnoremap <expr> $ v:count == 0 ? 'g$' : '$'

nnoremap <Down> gj

nnoremap <Up> gk

vnoremap <expr> j v:count == 0 ? 'gj' : 'j'

vnoremap <expr> k v:count == 0 ? 'gk' : 'k'

vnoremap <expr> 0 v:count == 0 ? 'g0' : '0'

vnoremap <expr> ^ v:count == 0 ? 'g^' : '^'

vnoremap <expr> $ v:count == 0 ? 'g$' : '$'

inoremap <Down> <C-o>gj

inoremap <Up> <C-o>gk

В emacs чутка попроще (~/.emacs):

(global-visual-line-mode 1)

(setq visual-line-fringe-indicators '(left-curly-arrow nil))

А у нас — нажать F3

озадаченно... даже не знаю вся эта простыня. Пишу себе `:set wrap` / `:set nowrap` и всё работает

:set wrap лишь включает или выключает перенос строк, а приведенный код полностью настраивает поведение переноса: set wrap и set linebreak обеспечивают аккуратный перенос слов, set showbreak=↪\ и set breakindent визуально обозначают перенесенные строки и сохраняют отступы.

А самое главное, серии nnoremap и vnoremap, переопределяют стандартные движения курсора (j, k, 0, ^, $, <Down>, <Up>) так, чтобы они учитывали визуальные строки (перенесенные) вместо логических строк (фактических, длинных). Это позволяет курсору перемещаться более интуитивно, прыгая по видимым строкам, а не по скрытым концам логических строк, что делает навигацию и редактирование удобными и предсказуемыми. Совсем как в far2l 🙂

Это-то понятно, но я бы разделил кастомизацию редактора и переключение режима. Чтобы было "как нравится" многие пользователи vim так или иначе настраивают под себя .vimrc. Когда-то тоже это сделал и уже забыл, что там написано. А для переключения ничего сложного делать не нужно.

Справедливо. Думаю, мы со временем добавим кастомизацию поведения переноса тоже!

Тут, конечно, полно тюнинга под конкретный UX, так что сразу оговорюсь: когда писал перенос, референсом считал поведение <textarea> в html, т.к. это интерфейс, понятный всем.

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

А зачем нужно в техническом редакторе фича из полновесного текстового редактора?

Оно и висело 9 лет, потому что технарям оно не нужно от слова "совсем". А остальные не в курсе про FAR :)

Фича это еще и производительность жрет, так как и навигация и выделение становится не тривальной задачей, а редакором FAR можно открывать многомегабайтные файлы - он должен быть прост, как валенок и быстр настолько, насколько он может быть.

Давайте туда еще карту навигации засунем, висящие переносы и ударения :)

Как раз переносы по словам в JSON - это будет дикая боль, говорю как бэкэндер, который JSON-портянки каждый день смотрит. Редактор в FAR - это быстро пробежаться по JSON, причем обычно с word-wrap и вообще без скроллинга, а если надо изучать - открывать надо в соответствующем редакторе, с возможностью скрывать узлы и тд - текстовый редактор вообще не для этого.

Логи точно также отлично смотрятся с word-wrap, а также с помощью ctrl+стрелочки во вьювере, которые сразу скроллируют куда нужно.

Вобщем, каждому инструменту свое, не надо из любого редактора текста пытаться сделать IDE.

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

Хотя бы чтоб удобно README.md самого far2l или примерно любого проекта на Гитхабе редактировать. Хотя я и с текстами там работаю время от времени.

И я работаю и ни разу не было необходимости в переносе по словам. Ни у меня, ни у коллег по цеху. Все решается либо wordwrap-ом, либо стрелками.

Там, где нужно больше, нужно использовать IDE с предпросмотром того же MD, а не консольный инструмент, абсолютно не проходящий для данной задачи, насиловать.

Погодите, но речь и идёт о реализации WordWrap'а

Речь идёт о том, что при вордврапе в вашем случае отрезается не ровно а по границе слова, это понятно.

Я же говорил про стандартный вордврап.

не надо из любого редактора текста пытаться сделать IDE.

Но и сидеть с кодом 25-летней давности и делать вид что развивать его не надо -- тоже так себе идея.

Немножечко осовременить и добавить базовые вещи -- не помешает.

Лиха беда начало, как говорится (С).

"А остальные не в курсе про FAR :)" вот это меня немножечко огорчает. народ перестал работать в консоли совсем? или глаза разбегаются от выбора альтернативы? или перегружены информационно? приучились к использованию мыши? почему?

Имхо дело куда проще -- слава фара давно прошла.

Вот когда фар писал еще Рошаль, это был острый швейцарский нож, умевший все нужное и даже больше. Я еще застал те времена, когда полезные плагины к нему выпекались как из рога изобилия.

Затем фар некоторое время был популярен просто из-за доброй славы.

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

И вот сейчас фар в виде форка под Linux -- получает второе дыхание. Что такое этот word wrap в редакторе? По сути, это очень важный индикатор, показывающий -- этап портирования и адаптации к новому окружению завершен. Начинается то, ради чего фар переносили -- этап развития. Новые плагины, новый функционал, новые полезности -- разве это не прекрасно?

Ну а то что один из авторов меньше уделяет время проблемам совместимости (их действительно стало сильно меньше), и больше сосредотачивается на развитии -- это замечательно.

Ждем нового релиза и новую статью :-)

Можно примеры новых подходов, только не из серии DoubleCommander?

Хотите примеры? Пожалуйста.

  1. Файловые панели. Где табы? Где "открыл несколько панелей в одном приложении"? Прошла первая четверть 21 века, у панельного менеджера все еще одна панель. Даже у dolphin есть, у фара... внешним способом.

  2. Консолька. Когда-то, я запускал фар только потому, что он умел больше и лучше чем стандартный конхост. Сегодня я запускаю Konsole, потому что фар безнадежно отстал. (в скобках - в far2l сильно улучшено)

  3. Работа с файлами. Подключаю смартфон проводом, иии ? Где файлы? Файловый менеджер, о чем написано прямо в названии -- с файлами работать не может, лол. И нет, то что при Рошале такого не было -- никак не извиняет. (в скобках -- в far2l над этим ведется работа)

  4. Сеть. Мир уехал в облака, иии где? Дропбокс, гугель диск, несть им числа. AWS S3 наконец. (в скобках - в far2l над этим работают, aws s3 например нативный уже в мастере)

  5. Архивы. Как так случилось, что при одном авторе архивный менеджер (так в названии) не умеет создавать архивы того же автора, что и сам фар? Я конечно ценю усилия Павлова и его 7z, но как так вышло-то, что архивный менеджер превратился в обертку над 7z? (в скобках - у far2l два способа работы с архивами, как в фаре2 через MultiArc и как в фаре3 через ArcLite, и -- одновременно, так что дела обстоят гораздо лучше)

  6. Редактор. Вы современный Kate или хотя бы Notepad++ видели? Табы, переносы, меню, фолдинг, номера строк, внешние тулы, форматирование... (тут, очевидно, ведется работа, статья именно об этом)

  7. Печать, просмотр файлов, работа с клипбордом (существует не только plain text) -- одна сплошная misfeature. (в far2l тоже над этим работают)

  8. Шутка дня -- файловый менеджер так и не научился показывать иерархию файлов, лол. Так и остался код из 90х, я про tree view. (в far2l над этим тоже поработали).

  9. Зато возрадуемся братие, вместо интеграции у нас есть юзерские меню... в текстовых файлах, вызываемые странными комбинациями.

В итоге, при работе с файлами даже огрызок под названием Windows NT Explorer умеет больше.

А главное, UX у far отрицателен. Как в 1970 году, он предлагает заучить на память клавиатурные комбинации. Мир прошел сложный путь от меню и тулбаров к риббонам и обратно, а фар... И да, не поверите, но над этим в far2l тоже идет работа, но очень бережно и отключаемо.

Вердикт: в far2l ребята действительно работают над сокращением отставания от всех остальных. Молодцы.

Спасибо! Это очень приятно слышать. А меню в редакторе тоже уже готово, просто ещё не в мастере 🙂

Файловые панели. Где табы?

А зачем они нужны? Поставил Conemu, попробовал - пользоваться неудобно, снёс. Мне удобнее всё делать через панель задач. Нужна ещё копия - пожалуйста, щелчок средней кнопкой по заголовку фара на панели.

Прошла первая четверть 21 века, у панельного менеджера все еще одна панель.

Файловых панелей вообще-то две. Плюс панель редактирования, просмотра, и т.д. Переключение по F12 или Ctrl+tab.

Даже у dolphin есть, у фара... внешним способом.

И это хорошо. Кому надо - поставят, остальным мешать не будет.

Консолька. Когда-то, я запускал фар только потому, что он умел больше и лучше чем стандартный конхост.

Far вообще не реализует консоль, а пользуется системной. Нужна другая - запускайте far под ней. Для консоли мне от фара нужно только подставлять имена файлов по ctrl+enter.

Работа с файлами. Подключаю смартфон проводом, иии ? Где файлы?

Всё работает. Плагин portadev или fardroid.

https://plugring.farmanager.com/plugin.php?pid=933&l=ru

https://plugring.farmanager.com/plugin.php?pid=867&l=ru

Пора бы понять, что 90% функционала фара реализуется плагинами.

Сеть. Мир уехал в облака, иии где? Дропбокс, гугель диск, несть им числа. AWS S3 наконец.

А они как-то в системе регистрируются или всё через родное приложение и проприетарные протоколы? Надо - подключаете как диск через какой-нибудь CloudMounter и пользуетесь в фаре.

Архивы. Как так случилось, что при одном авторе архивный менеджер (так в названии) не умеет создавать архивы того же автора, что и сам фар?

Вы предлагаете rar запихнуть в far? Даже Рошаль так не делал. Что вызывало проблемы - если не установлен winrar, то far не мог ни извлекать, ни паковать. Не нравится arclite - никто не мешает использовать старый multiarc.

Редактор. Вы современный Kate или хотя бы Notepad++ видели? Табы, переносы, меню, фолдинг, номера строк, внешние тулы, форматирование.

А вы в Kate или Notepad можете открыть экзешник, исправить несколько символов и оставить его работоспособным? Far может.

Всё остальное реализуется плагинами. Например, когда я набирал много текстов в фаре, мне захотелось проверки орфографии. Зашел на плагинринг - пожалуйста, хоть с движком msoffice, хоть open office.

Печать, просмотр файлов, работа с клипбордом (существует не только plain text) -- одна сплошная misfeature.

Что вы этим хотели сказать? Печать - посылает файл как есть, мало кто умеет это делать. Удобно вставлять нужные управляющие коды. Хоть это и актуально только для матричников/струйников.

Просмотр - ставишь нужные, хоть плагином, хоть внешней командой, всё поддерживается.

Что не устраивает в работе с буфером обмена - непонятно. Опять же, фар его не реализует, а использует системный. Нужно что-то особенное - ставь своё.

Шутка дня -- файловый менеджер так и не научился показывать иерархию файлов, лол

А как эту иерархию надо показывать?

В итоге, при работе с файлами даже огрызок под названием Windows NT Explorer умеет больше.

Можете привести примеры, что умеет Explorer, что не умеет Far?

А главное, UX у far отрицателен. Как в 1970 году, он предлагает заучить на память клавиатурные комбинации.

Зачем? Не знаешь сочетание клавиш - делаешь через меню. Например, если не помнишь, что для смены атрибутов Ctrl+A, то выбираешь в меню Files -> File attributes. Всё просто и понятно.

Я когда-то работал в школе, так дети быстрей осваивали Far, чем стандартный Explorer.

Вы довольно точно описали состояние Far3: встроенного терминала нет, сходить куда-нибудь по ssh и что-то там поделать, не выходя из фара, нельзя. Зато можно вручную посылать команды струйникам!

Всё таки модель Far - запустить относительно короткую консольную програмку и быстро по Control-O посмотреть вывод. Для долгоживущих ssh сессий вполне можно отдельную консольку открыть, Far не нужен.

Какой гимн лозунгу "в колбасе потребности нет", прямо ностальгия :-)

А зачем они [табы] нужны?

Не поверите, но удобная штука. Когда не через conemu, а натурально. Особенно когда левая и правая части -- не вбиты гвоздями в один таб.

Far вообще не реализует консоль

Спасибо, кэп. Именно об этом я и пишу. Консольный менеджер, не умеющий в консоль -- это сильный ход.

Всё работает. Плагин portadev или fardroid.

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

подключаете как диск через какой-нибудь CloudMounter

А я вам о чем? Файловый (голосом Володарского) мать-его-за-ногу менеджер -- не умеет работать с файлами.

Странно, что NetBox еще не выпилили, можно же и к FTP ходить через очередное 3rd party? Или это другое?

Да, вы не поверите, но dolphin умеет ходить в гугло драйв, не требуя что-то там еще проставить и настроить. Самое сложное -- это пройти логин самого гуля ;-)

Вы предлагаете rar запихнуть в far?

7z же запихнули, не постеснялись?

в Notepad можете открыть экзешник

(смотрит с изумлением) Я не редактирую экзешники со времен уиндоусь 95. А вот жысонов и хамеелей у меня тьма. И я такой не один.

Всё остальное реализуется плагинами.

... только их надо искать и ставить. Как при царе горохе.

У меня для вас плохая новость -- это не те плагины.

Да, современные плагины либо а) в вашем дистрибутиве, либо б) в маркетплейсе плагинов. Как у браузеров, VSCode, KDE и так далее. Вы даже этого не замечаете? ;-)

Печать - посылает файл как есть

Для вас наверное будет открытием, но в современном мире есть не только "послать коды матричному принтеру", но и например такая вещь как print preview.

Что не устраивает в работе с буфером обмена - непонятно.

Вы когда в редакторе фара видите подсвеченный текст, вам никогда не хотелось скопировать его куда-то еще вместе с раскраской? А ведь так умеют теперь все, уже много лет.

И "свой клипборд" реализовывать не надо, надо в системный помещать не только plain text.

А как эту иерархию надо показывать?

Видите ли, современные диски обычно содержат миллионы файлов и каталогов.

И да, даже в Windows 95 эксплорер умел читать только те каталоги, которые нужно, а не как фар3 -- сканируя всю дискету в 360 килобайт.

Не знаешь сочетание клавиш - делаешь через меню.

Поднимите мне веки и покажите -- где там меню скажем во вьюере ;-)

когда-то работал в школе, так дети быстрей осваивали Far, чем стандартный Explorer.

Когда-то так и было. Много лет назад.

Но теперь все не так -- сегодня юзер просто тыкает в меню современного файлового менеджера, и сразу получает файлы с подключенного айфона, а в фаре он начинает с поиска -- а вдруг существует плагин... и он еще и заработает, не потребовав поставить условный adb ;-)

Не поверите, но удобная штука. Когда не через conemu, а натурально.

Натурально? Как вы представляете себе табы в чисто текстовом приложении? Попробуйте такое хотя бы нарисовать.

Спасибо, кэп. Именно об этом я и пишу. Консольный менеджер, не умеющий в консоль -- это сильный ход.

Он прекрасно работает в консоли. С чего он должен её реализовывать? Умельцы, кстати, Far даже под голым досом запускали, какая там консоль.

Всё работает. Плагин portadev или fardroid.

Так какой из них и почему надо брать?

Первый работает по протоколу MTP и, помимо телефонов, совместим ещё с кучей устройств типа фотоаппаратов или плееров. Второй через ADB и совместим только с андроид-устройствами. Какой вам надо - такой и берите.

И почему вообще надо брать, фаргруповцам лень длл-ки положить в инсталляцию -- это не ответ :-)

А с чего они должны это делать? По инету гуляет целая куча сборок FarSuperMegаPowerPack от разных сборщиков с плагинами на все случаи жизни. Хотите - ставьте. Только потом не жалуйтесь, что всё тормозит и глючит.

Помещать в дистрибутив чужой плагин, потом отвечать за него и поддерживать на редкий случай "а вдруг кому понадобится" - так себе идея.

подключаете как диск через какой-нибудь CloudMounter

А я вам о чем? Файловый (голосом Володарского) мать-его-за-ногу менеджер -- не умеет работать с файлами. Странно, что NetBox еще не выпилили, можно же и к FTP ходить через очередное 3rd party?

А при чём здесь файлы когда речь об удалённом доступе к чужой проприетарщине? Если что-то стандартное - то пожалуйста. Упомянутый вами NetBox помимо ftp прекрасно поддерживает sftp, scp, WebDAV и даже Amazon S3, как вы хотели.

Вы предлагаете rar запихнуть в far?

7z же запихнули, не постеснялись?

Где? От 7z там одна dll'ка, реализующая соответствующий api. Rar - коммерческий продукт и такого api не предоставляет, из бесплатного есть только unrar.dll

(смотрит с изумлением) Я не редактирую экзешники со времен уиндоусь 95. А вот жысонов и хамеелей у меня тьма. И я такой не один.

Ну так открывайте их в том, в чём вам удобнее, какие претензии к Far? Это не текстовый процессор и не IDE. Хотя, часто видел на международных олимпиадах, что люди прямо в Far пишут. Возможно, им так удобней.

... только их надо искать и ставить. Как при царе горохе.

Тяжело зайти по одному адресу https://plugring.farmanager.com/index.php?

Надо чтобы за вас пожевали и в рот положили?

"- Вы что, за меня ещё и есть будете?

- Ага!"(с)

Да, современные плагины либо а) в вашем дистрибутиве, либо б) в маркетплейсе плагинов. Как у браузеров, VSCode, KDE и так далее. Вы даже этого не замечаете? ;-)

Должны быть или не должны быть? Чем фаровский плагинринг отличиется от каких-то маркетплейсов?

Для вас наверное будет открытием, но в современном мире есть не только "послать коды матричному принтеру", но и например такая вещь как print preview.

Так делайте это в соответствующих редакторах. При чём здесь Far? Как вы себе это preview в текстовом режиме представляете?

Вы когда в редакторе фара видите подсвеченный текст, вам никогда не хотелось скопировать его куда-то еще вместе с раскраской? А ведь так умеют теперь все, уже много лет.

Честно? - Никогда. А вот ситуация, когда нужно убрать какое-то чужое левое форматирование возникает постоянно. И редактор фара при этом очень выручает. Вставил в него и получаешь нормальный plain text, а не выискиваешь, что вот и шрифт, и размер поправил, все эффекты убрал, а всё равно вставленное сильно отличается, и что там как наформатировано - непонятно.

А как эту иерархию надо показывать?

Видите ли, современные диски обычно содержат миллионы файлов и каталогов.

Так как это надо показывать?

Поднимите мне веки и покажите -- где там меню скажем во вьюере ;-)

В нижней полоске. Меню и сочетания клавиш, два в одном. И даже команда выхода есть отдельно. И даже по Esc можно выйти (не будем вспоминать vi и ему подобные).

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

"Можно сделать продукт для полных идиотов - и только идиот захочет им воспользоваться" (с)

Очевидно, что вам Far не подходит. Ну так пользуйтесь тем, что вам нравится, никто его не навязывает. Зачем хаять напрасно?

Помещать в дистрибутив чужой плагин, потом отвечать за него и поддерживать на редкий случай "а вдруг кому понадобится" - так себе идея.

Секундочку. Но вы же сами советуете "какой надо" поставить? Что за странное заворачивание в газету :-)

Чем фаровский плагинринг отличиется от каких-то маркетплейсов?

Очевидно чем -- модерацией.

Если в микрософт сторе есть плагин -- значит он точно работает с указанной версией продукта.

При этом система плагинов реализована так, чтобы "тормозит и глючит" не были столь распространены, как вы только что рассказали.

Более того, тот же Eclipse вообще состоит из одних плагинов, и у них почему-то ничего не тормозит и не глючит. Во дела.

Впрочем, сложно рассказать о вкусе устриц тому, кто их не ел :-)

Где? От 7z там одна dll'ка

... содержащая полсотни "кодеков", собственно и реализующих работу с архивами в разных форматах.

Почему рядом не лежит такая же DLL от винрара?

Что мешает, кроме шапочки от фольги, написать Рошалю емейл с просьбой такую DLL выделить? Павлов же выложил.

А ответ мы с вами оба знаем -- "так заведено".

И оба понимаем, что это не аргумент.

Так как это надо показывать?

Вы в курсе про Ctrl+T в фаре3?

Вот это вот видите?

Это и есть - сканирование дискеты в 360 килобайт.

С тех пор как изобрели жесткие диски размером c гигабайт (не ошибка), так больше не делается. Показывают дерево динамически достраиваемое -- по мере надобности.

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

Об этом знают все уже четверть века -- и только фар спамит диски своим "кэшем" tree3.far в корне диска, как это делал легендарный командир Нортон в досе.

И тут вы такой - а как надо?

;-)

В ответ на просьбу показать меню, которое в свою очередь демонстрирует непревзойденный UX фара3

В нижней полоске. Меню и сочетания клавиш, два в одном.

я услышал про волшебный кей бар.

Вынужден разочаровать, меню в фаре должно бы выглядеть примерно так

Если вы конечно про меню, а не про то что в самом фаре называется "key bar" и например на маках соответствующей серии выглядит вот так

и как видите, на меню не похож от слова совсем.

Очевидно, что вам Far не подходит.

(гомерически хохочет)

Зачем хаять напрасно?

Как вы видите на примерах, на вашем солнце есть пятна. Зачем их столь активно отрицать -- загадка.

Лучше бы помогали пинать фаргруповцев, может вместо царственного "пишите на луа" и отправки к сомнительным плагинам, требующим наличия adb, хотя бы починят явные несуразности типа того же tree view.

Натурально? Как вы представляете себе табы в чисто текстовом приложении?

Я себе очень хорошо представляю, как это можно сделать. Даже не одним способом.

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

Или можно эксель-стайл, снизу. Я бы даже предпочел табы вместо гениального кей бара, или над/под ним.

А еще есть место над панелями (но под меню баром). Или даже место в строке статуса.

Как видите, немного фантазии...

Он [far3] прекрасно работает в консоли. С чего он должен её реализовывать?

Но пользоваться фар должен бы уметь оной консолью?

Хотя бы в таких элементарных вещах, как захват вывода запущенной в фаре программы во вььюер и/или редактор?

Или тоже нет? ;-)

Вы когда в редакторе фара видите подсвеченный текст, вам никогда не хотелось скопировать его куда-то еще вместе с раскраской? А ведь так умеют теперь все, уже много лет.

Как раз фар я использую в т.ч. для того, чтобы из этого clipboard-hell вынуть обычный plain text

Как раз фар я использую в т.ч. для того, чтобы из этого clipboard-hell вынуть обычный plain text

А можно при вставке прижать Shift и выбрать нужный flavor.

Ваш кэп.

И да, в фаре3 ничего кроме unformatted text не поддерживается, но это не достоинство -- это misfeature.

Вы предлагаете rar запихнуть в far? Даже Рошаль так не делал. Что вызывало проблемы - если не установлен winrar, то far не мог ни извлекать, ни паковать. Не нравится arclite - никто не мешает использовать старый multiarc.

даже больше скажу. Far в своем время появился из rar :) а до этого появления был стандартной интерактивной оболочкой для "досовского" rar :)

Спасибо! Да, в Far3 они немножко застыли в янтаре, увы. Там ошибка была в том, что на все запросы пользователей (тот же перенос слов) отвечали «делайте на Lua». А это базовая фича редактора, и к тому же быстро оно на Lua едва ли работало бы. И такого много.

Т.е. причина отставания от индустрии — в отсутствии мотивации и ресурсов (а возможно и навыков — разбираться в legacy коде тот ещё фан) рецензировать патчи.

В far2l есть гениальный изначальный автор @elfmz который это делает, и делает очень хорошо. Хотя сейчас, в эпоху нейронок, мы его возможно несколько перегружаем, и что делать с этим, пока непонятно.

И ещё одна важная штука. Опенсорс это не столько код, сколько комьюнити и выстроенность процессов. Брагин @reactos пытался это фаргруповцам донести, когда код только открыли, но, увы, не преуспел. А в far2l комьюнити менеджментом занимаюсь я, в том числе баню токсов в чате и поддерживаю морально тех, кто впервые что-то написал. Вот и поехало развитие.

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

в Far3 они немножко застыли в янтаре

Работает - не трогай. После того, как добавили поддержку Unicode, каких то явных недостающих фич не видно.

Я там чуть выше выкатил целый список таких :-)

https://habr.com/en/articles/992736/#comment_29484616
И да, список тенденциозен, "у фара3 с современностью все плохо".

Но ведь действительно, фар3 мало что умеет.

Как активному пользователю фаров разных, очень хотелось бы не чертыхаться каждый раз, когда фар мог бы пригодиться, но ... не умеет. Снова файлы в УанДрайв / ГуголДиск / подставить, да какого, опять в браузер. Фотку с телефона -- да что ж такое-то, опять мышой щелкать....
Не файловый менеджер, а MVP какой-то ;-)

А плагинов для этого нет? Мне последние лет двадцать лениво их отслеживать - какой то набор устаканился, им пользуюсь.

Кое-что есть, но -- это все или лютое старье сомнительной полезности, или узко-нишевое, или вообще "макросы", и все это без поддержки и развития, а часто еще и без исходников.

А еще у таких 3rd party есть неприятное свойство пропадать в нужный момент. Не раз нарывался -- откладываю себе в букмарки "вот полезное, вдруг пригодится", а когда вот-вот уже почти надо -- "проект на гитхабе скрыт автором".

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

Макросов на луа это тоже касается.

Раз кому-то хочется с переносами, а кому-то нет — для меня, например, стало неожиданностью, видимо, как и для автора, что таких людей достаточно — то напрашивается универсальное решение: галочка «Переносить по словам», как в том же блокноте. И убрать эту галку в Параметры — Системные параметры.
По умолчанию можно сделать отжатой, чтобы не ломалась логика работы с предыдущими версиями фара. Лично я не переломлюсь, чтобы её установить: всё равно после установки FAR всегда захожу в Системные настройки и выставляю их так, как нужно мне.
@unxed, можно так сделать?

Так по F3 переключается. И можно в настройках, да. И по умолчанию выключено.

То, что данный функционал вам не нужен - не обязывает вас доказывать, что он никому не нужен. Если пойти такой дорожкой, можно быстро скатиться до "используя dd и echo можно удобно редактировать любые файлы".

Касательно форматтеров. В том числе по причине того, что всем людям нужно разное, не существует "одного правильного" форматтера. Значит, почти наверняка он должен быть внешним. Таким образом, задача может быть сведена к плагину, вызывающему внешнюю утилиту. При необходимости можно воспользоваться ИИ инструментами :)

"Дубовость" редактора при написании кода имеет свои плюсы. Да, лишнего не свернешь, но моё субъективное наблюдение такое: чем проще редактор у автора кода, тем проще понять его код. Думаю, здесь есть связь не только на уровне "старообрядцы просто имеют больше опыта".

Теперь нужно добавить переносы слов по правилам используемого языка.

Ха! Редактировать так едва ли удобно, а вот для viewer'а и правда прикольно было бы!

есть разные стратегии рендера текста

на иксах с xft(freetype зависимость), который с виду будет выглядеть как обыкновенный блокнот есть функции, которые умеют работать не строчно, а областями(XClearArea), и так можно добиваться в текстовых областях получше производительности чем рендерить строки, тривиально, области позволяют обновлять-только дописывать текущий глиф, ну хотябы с натяжкой можно стремиться к этому, когда просто перерисовка экрана дорогущая вроде

Штука в том, что у нас не отрисовка напрямую в иксы, а сначала в свой внутренний буфер через свой API, напоминающий консольный API винды (если быть точным, это частично subset, а частично superset), а вот из него уже рендер или в иксы или в обычную консоль. Т.е. мы не можем на x-специфичные штуки полагаться.

Если судить по описанию реализации, сломается бо́льшая часть скриптов и макросов, используемых в редакторе.

Почему? Внутренние структуры остались те же, поменялась отрисовка. И пока таких жалоб не было.

Вот если бы я делал так, как предлагали коллеги, и как сделана свёртка во встроенном терминале: рубить сразу на подстроки, работать с ними, а при сохранении или копировании в буфер склеивать обратно, тогда бы всё сломалось, да.

Это far2l, а не far3. Plugin API там учитывает переносы, а луашных макросов нету. Так что все работает как работало.

Есть far2m на основе far2l с lua-макросами.
И там макросы из FAR 3 работают.

В m переносы не забирали пока, может, поэтому, да.

Интересно, как внедрение этой фичи сказалось на производительности, если пользователь не включил word wrap? Верно ли, что просадки в таком сценарии не будет?

Перформанс только вырос, ибо вычистили древнюю архаику с "а теперь мы пробежимся по списку чтобы найти что-то там от начала файла при отрисовке строки" :-)

И да, в коде все такие места обернули в if / else if, работа проделана очень аккуратно.

Отличная работа, очень круто!

Спасибо! :)

Нам тем временем ещё пачку оптимизаций производительности редактора принесли :)

перенос по словам (Word Wrap) во встроенном редакторе far2l!

Перешёл по ссылке на #3006 и не увидел ни единого unit-теста.
Разработка без тестов, особенно внесение серьёзных изменений в существующий код, это бег по граблям, а иногда и по минному полю.

Как-то мне довелось реализовывать code folding, естественно нужно было дорабатывать и word wrap. Без написания нескольки сотен unit-тестов это было бы самоубийством.

Я никогда не считал себя сильным C++ разработчиком.Мой уровень в «плюсах» — где-то между Junior и Middle.

9 полных лет, прошедших с 2016 года более чем достаточно, чтобы прокачаться в программировании. А синдром самозванца сам собой улетучивается, когда видишь, какую дикую дичь порою пишут разработчики со стажем больше твоего.

Я понятия не имел, как правильно архитектурно реализовать свёртку строк (Soft Wrap) в текстовом редакторе.

А это к знанию языка вообще отношения не имеет. Тут нужны алгоритмы и структуры данных.

Вот, к слову, интересный доклад на смежную тему: https://www.youtube.com/watch?v=YzWr9CN6cGQ

Моим главным инструментом стали нейросети Gemini Pro

Если вы будете пользоваться БЯМ, то рискуете не только не развить свой уровень как программиста, но и вовсе деградировать.

В этой работе я активно использовал свой формат AI-friendly Patch (.ap)

На первый взгляд выглядит вполне себе как кандидат для статьи в рецензируемый журнал.

почему бы не сделать нормальное мышыное выделение?

Но зачем?
Клавишами ведь удобнее.

Конечно, без багов не обошлось. То курсор прыгал не туда, то End отправлял в бесконечность. Но исправлять их с помощью тех же моделей получалось довольно быстро. Если случалась регрессия, я не просто описывал модели ошибку, а показывал diff изменений, связанных с реализацию вызвавшей регрессию фичи, вместе с полным кодом релеватных файлов.

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

Sign up to leave a comment.

Articles