LINUX.ORG.RU

Vim или Emacs? А LISP в 2021?

 , ,


1

4

https://www.youtube.com/watch?v=8Q9YjXgK38I&t=42s

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

А ведь Crashbandicoot была годной игрой…

Что выбрать? Vim или Emacs?
Изучать в 2021 году Lisp? Если изучать, какой? Практика?
А не засмеют сотрудики?

Времени в сутках маловато, на всё не хватает.


Ответ на: комментарий от monk

А кто-то на ЛОР вообще по ссылкам ходит? А?

Я же не просто так выкладывал… Что, %#]дь за люди? Риторика пошла.

Глянь первую ссылку, пацан довольно неплох в определённых кругах, плюс он подскажет тебе о Vim (там он дядька).

В Emacs меня бесит корявая настройка плагинов. И я так понимаю, что это от незнания Elisp. Вот и задался вопросом. Плюс набросить на ЛОР и посмотреть, как тут жизнь.

Вердикт? Зубры не всплыли.

B0B
() автор топика
Последнее исправление: B0B (всего исправлений: 1)
Ответ на: комментарий от B0B

А кто-то на ЛОР вообще по ссылкам ходит? А?

На текстовые хожу. А эта мода вместо страницы текста выкладывать видео на час почти бесит.

monk ★★★★★
()
Ответ на: комментарий от B0B

Мне туториала и мануала хватило. Для целостной картины можно Mastering Emacs почитать, но я сам не читал.

monk ★★★★★
()
Ответ на: комментарий от monk

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

Крайне куцое определение. Если ты стремишься к Сатори, то живёшь в своей, уникальной рабочей среде. И если ты с Emacs - Vim не нужен. Совсем. Есть хорошие заменители для повседневных дел - JMacs (в составе Joe). Быстр, как пуля. Настраиваем. Конфиг легко переносим на удалённые окружения. Собирается БЕЗ зависимостей.

B0B
() автор топика
Ответ на: комментарий от monk

Мне туториала и мануала хватило. Для целостной картины можно Mastering Emacs почитать, но я сам не читал.

Ответь прямо - в DE живёшь? В обычном дистрибутиве Linux? Где за тебя всё опакетили?

А ссылка годная. Одна из лучших, ИМХО, по данному вопросу. ПАцан подарил лучшую клаву на сегодняшний день, и не одну.

B0B
() автор топика
Ответ на: комментарий от monk

Спасибо. Я по ним зарылся на ночь. Очень интересно, так как сам участвовал в разработке игорей.

B0B
() автор топика
Ответ на: комментарий от B0B

Ответь прямо - в DE живёшь? В обычном дистрибутиве Linux? Где за тебя всё опакетили?

FVWM/Debian.

Живу в куче окошек терминала. Там удобнее.

Если ты стремишься к Сатори, то живёшь в своей, уникальной рабочей среде. И если ты с Emacs - Vim не нужен.

Если Emacs заменяет всё, то да. Но мне в Emacs неудобно читать почту, редактировать .odt файлы, работать в shell’е (eshell хорошо, но bash всё-таки лучше). К тому же компьютеров у меня много, а Emacs с удалённым запуском программ не очень хорошо дружит.

monk ★★★★★
()
Ответ на: комментарий от monk

ответ выше. Это если пользоваться клавиатурными сочетаниями Readline. Конечно, в Emacs тащили всё, так как работали в консоли. Сейчас нет смысла, особенно в WM, особенно что-то тайловое. Но как среда разработки… Тоже гадость ещё та. Но, повторюсь, от незнания. Надо всё дорабатывать или иметь картину, чтобы пинать тех, кто пишет плагины. Меня хватало вносить правки только в пару пакетов и themes. А вот где разбираешься в вопросе, там да, там строю, когда скучно. Сейчас особенно доставляет пинать разработчиков Wayland. Благо, хренушки они съехать могут, что не видели-не знают, ведь есть Xorg. Очень весело иногда бывает. Заодно продвижение явно видно.

B0B
() автор топика
Ответ на: комментарий от monk

Мне проще прочитать смайлики, чем винегрет из {(<[]>)} в Си++, например. И синтаксис как раз можно сделать почти любой. Если аллергия на смайлики, то просто используй https://sourceforge.net/p/readable/wiki/Common-lisp-tutorial/

Тут спору нет — C++ является самым трудночитаемым из широко используемых. Разговор ведь был про «Lisp vs Python».

Я когда-то уже пояснял, что смайлики являются следствием, а не причиной проблем лиспа. Даже несмотря на то, что твой пример представляет собой идеоматичную, удобную для реализации задачу, все равно появляются такие радости как «fibup n 2 1 0» — раз, два, три, четыре, пять, вышел Фибоначи погулять.

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

Да, имея сноровку можно группировать простые сущности, таким образом более эффективно умещая их в кратковременную память и повышая скорость чтения. Но здесь лиспу на помощь приходят МАКРОСЫ, и не оставляют кожанному мешку никаких шансов. То, что называется «забудьте всё, что вы учили — с нашими новыми макросами вы будете учить язык заново».

Единственный успешный современный диалект лиспа сделал две простые вещи:
 — макросы не рекомендованы для употребления. Они есть, но только для самого крайнего случая;  — в язык из коробки встроена богатая семантика персистентных структур данных, не имеющая подобных простых альтернатив среди других ЯП. И нет, подключаемая в питон/JS/C++ библиотека персистентных структур данных намного сложнее в использовании.

Ну и ты еще забыл, что лямбды в JS дадут прикурить лисповым скобкам. Потому пришлось выдумывать синтаксис async/await.

byko3y ★★★★
()
Ответ на: комментарий от B0B

P.S. Знаешь, как я попробовал Emacs? В Vim Haskell выравнивался криво. И все твердили - Emacs! Так и попробовал. REPL…

B0B
() автор топика
Ответ на: комментарий от byko3y

Фундаментальная проблема лежит в том, что даже производные лиспа должны быть машиночитаемы.

А ты прикольный корм.

макросы не рекомендованы для употребления

в язык из коробки встроена богатая семантика персистентных структур данных

Вот порвал ты меня. Гарольда скрутило.

B0B
() автор топика
Ответ на: комментарий от Im_not_a_robot

Вопрос лишь в программном обеспечении, которое сделает викидвижок удобным для личного использования на десктопе и мобиле. Для меня им стал Obsidian+Syncthing

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

byko3y ★★★★
()
Ответ на: комментарий от B0B

Фундаментальная проблема лежит в том, что даже производные лиспа должны быть машиночитаемы.

А ты прикольный корм

Ориентированы на легкий разбор компутером — так доволен?

макросы не рекомендованы для употребления

в язык из коробки встроена богатая семантика персистентных структур данных

Вот порвал ты меня. Гарольда скрутило

Есть что возразить? С кложей знаком вообще?

byko3y ★★★★
()
Ответ на: комментарий от absurdde

Emacs это мой выбор. Он может быть любым, таким как ты его настроил а не как решил какой-то «специалист» который решает другие задачи

Он может быть любым устаревшим засохшим говном мамонта, как ты его настроишь. Компьютеры давно приобрели 1080p и 4k, поголовно имеют графически-ориентированные устройства ввода, развитые графические DE с интеграцией между приложениями, а Emacs так и застрял где-то в 80-х. Причем. ты никогда в жизни не сможешь из него сделать VS Code. Можешь сделать похоже, куцо, и консольно, но не можешь сделать настолько же удобно и фичасто.

byko3y ★★★★
()
Ответ на: комментарий от no-such-file

Вброс удался

Ну так, на полшишечки. До былых лиспосрачей как до китая раком

Это какие лиспосрачи? Луговский и ко рассказывали по 20-30 страниц, что ничего лучше скобкоты не существует, хотя 99% индустрии говорит ровно наоборот. И я в том числе, хотя считаю современную индустрию говном.

byko3y ★★★★
()
Ответ на: комментарий от no-such-file

Я пользуюсь, да. Офигенная штука

Ну и как, удается найти что-то в достаточной большой базе знаний (если, конечно, она у тебя есть). На секундочку: у меня 5 мегабайт заметок по одному только IT. То есть, порядка 4 миллионов символов, или примерно 2000 печатных страниц текста, и будь я эффективным манагером — уже выпустил бы несколько книжек. Поможет ли мне Org-roam так, как он помог тебе?

byko3y ★★★★
()
Ответ на: комментарий от Nervous

люто-бешено рекомендую org-roam

Люто-бешено лорчую этого господина. Правда, надо учитывать, что там недавно случился org-roam v2, несовместимый с v1

Ну и как, удается найти что-то в достаточной большой базе знаний (если, конечно, она у тебя есть). На секундочку: у меня 5 мегабайт заметок по одному только IT. То есть, порядка 4 миллионов символов, или примерно 2000 печатных страниц текста, и будь я эффективным манагером — уже выпустил бы несколько книжек. Поможет ли мне Org-roam так, как он помог тебе?

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Но это по прежнему то же самое большое число простых сущностей с простой семантикой вместо удобного человеку малого числа сущностей с богатой семантикой.

Поясни, какие сущности с богатой семантикой ты имеешь в виду. Можешь пример в виде куска кода на питоне.

Да, имея сноровку можно группировать простые сущности, таким образом более эффективно умещая их в кратковременную память и повышая скорость чтения. Но здесь лиспу на помощь приходят МАКРОСЫ, и не оставляют кожанному мешку никаких шансов. То, что называется «забудьте всё, что вы учили — с нашими новыми макросами вы будете учить язык заново».

Чем макросы отличаются от функций? Кроме упрощения чтения. Тот же loop на питоне можно реализовать один-в-один в виде:

loop.for("i").from(1).to(100).for("j").from(1).to(100).collect("[i,j]")

Чем это принципиально лучше макроса?

Есть что возразить? С кложей знаком вообще?

Макросы с структурами данных перпендикулярны. Вообще. Утверждение в стиле «в Си++ нет сборщика мусора, вместо него есть библиотека стандартных коллекций».

А персистентные структуры данных — это почти всегда лишние тормоза (кроме простых списков). И если их использовать, то имеет смысл вообще переходить на Haskell вместо убожества JVM.

monk ★★★★★
()
Ответ на: комментарий от monk

И ты туда же? Что же вы корм разгоняете?
Он же по русски не пишет «неизменяемые данные». Он выёживается, как и большинство. Слышал звон, мнение имею.

Особенно доставляет:

Компьютеры давно приобрели 1080p и 4k, поголовно имеют графически-ориентированные устройства ввода, развитые графические DE с интеграцией между приложениями, а Emacs так и застрял где-то в 80-х. Причем. ты никогда в жизни не сможешь из него сделать VS Code. Можешь сделать похоже, куцо, и консольно, но не можешь сделать настолько же удобно и фичасто.

B0B
() автор топика
Ответ на: комментарий от Gentooshnik

Я пробовал VScode сам офигел как они заставили (без единого плагина) тупо блокнот так лагать и тормозить

Уже научил свой блокнот в полнотекстовый поиск по проекту и миниатюру файла?

byko3y ★★★★
()
Ответ на: комментарий от MOPKOBKA

Даю новую информацию. После того как JS создали, он 20 лет серьезно дорабатывался и теперь является одним из лучших, популярных языков

Если бы гугл не сделал легко встраиваемый движ V8 и не зафорсил вместе с MS норм расширения к 2015 году, то JS до сих пор был бы бесполезным мусором. Боже, сколько же они там дерьмища несовместимого понавысирали для ноды до этого 2015 года — ты бы только знал. До тех пор, пока я не столкнулся с этим сам, я не подозревал, что всё настолько плохо: ты буквально не можешь библиотеку для подсчета чисел Фибоначи написать под браузер и под ноду одновременном, потому что модули там совершенно разные, асинхронщина иная, половина либ в NPM дергает напрямую файловую систему, которая недоступна через браузер, и еще кучу непереносимых расширений в библиотеке ноды — да, какие-то функции уже портировали на браузер, но не все, сделали инструменты транспиляции, но работает оно не идеально.

Потому, если ты говоришь «JS... является одним из лучших, популярных языков» — будь добр уточнить, про какой язык ты говоришь — про браузерный JS или про несовместимый с ним Node.JS?

byko3y ★★★★
()
Ответ на: комментарий от B0B

Ты вот пишешь дополнения к VSCode? А? Прошу помощи! Как мне поможет с текстом 4k?

Фронтендер, но, как ни странно, не пишу. С головой фатает готовых, а JS мне по горло надоедает на рабстве. Свой проект я вообще на сихе пишу.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Потому, если ты говоришь «JS… является одним из лучших, популярных языков» — будь добр уточнить, про какой язык ты говоришь — про браузерный JS или про несовместимый с ним Node.JS?

Не показывай своё невежество. JS - один. Однопоточный, синхронный.

B0B
() автор топика
Последнее исправление: B0B (всего исправлений: 1)
Ответ на: комментарий от B0B

Не показывай своё невежество. JS - один. Однопоточный, синхронный

А как же вебворкеры?

byko3y ★★★★
()
Ответ на: комментарий от B0B

Уже научил свой блокнот в полнотекстовый поиск по проекту и миниатюру файла?

https://www.youtube.com/watch?v=XjKtkEMUYGc&t=0s
Ответ

На что это ответ? На видео какая-то срань из двух REST-запросов, которые этот чел почему-то писал целых 16 минут при том, что прекрасно знал заранее сами запросы и досконально знал встроенные функции для обработки таких вещей.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Ну и как, удается найти что-то в достаточной большой базе знаний

А что, grep/ag уже отменили? Или для поиска по простому тексту тебе нужно что-то большее?

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

На 4к мониторе в интеграции DE не комильфо ;)

B0B
() автор топика
Ответ на: комментарий от B0B

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

IvanR ★★★
()
Ответ на: комментарий от byko3y

Ну что, написал хотя-бы единственный макрос за время нашей последней с тобой встречи?

Отец Аристоклий

anonymous
()
Ответ на: комментарий от monk

Поясни, какие сущности с богатой семантикой ты имеешь в виду. Можешь пример в виде куска кода на питоне

Вот смотри: беру https://github.com/emacs-lsp/lsp-mode , открываю lsp-mode.el, тыкаю в середину файла, нахожу небольшую функцию:

(defun lsp--number->color (number)
  (let ((result (format "%x"
                        (round (* (or number 0) 255.0)))))
    (if (= 1 (length result))
        (concat "0" result)
      result)))

Как она переписывается на питоне:

def lsp_number_color(number):
    result = '%x' % round((number or 0) * 255.0)
    if len(result) == 1:
        result = '0' + result
    return result

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

Это как в хаскеле, где язык не поддерживает конструкции последовательного исполнения, потому на каждый чих ты вынужден городить сложный конструкции на монадах-контейнерах просто для того, чтобы написать алгоритм «напечатать Hello, напечатать World». Каждый шаг — боль, каждый шаг — превозмогание, но нет «мы привыкли, нам нормально».

И всё ради чего? Ради какой-то мифической расширяемости, которой кто-то когда-то по слухам воспользовался в своей жизни — и всё ради того, чтобы 99% остального кода было завалено бесполезным «расширяемым» мусором. На самом деле, как я уже писал ранее, если человек внезапно таки захочет поиграть в мамкиного писателя DSL, то ситуация окажется еще хуже, потому что тогда никто кроме него самого не сможет прочитать его код.

loop.for(«i»).from(1).to(100).for(«j»).from(1).to(100).collect(«[i,j]»)

Ты никогда нигде не увидишь такого цикла на питоне. У питона очень компактные и лаконичные циклы, плюс list comprehension/generator expression.

Макросы с структурами данных перпендикулярны. Вообще. Утверждение в стиле «в Си++ нет сборщика мусора, вместо него есть библиотека стандартных коллекций»

Макросы в лиспе очень часто используются там, где достаточно простых функций. То есть «макросы не нужны». Да, иногда, очень редко, возникает необходимость посчитать что-то во время компиляции. Причем, в C++ почему-то эту проблему прекрасно решили безо всяких макросов, при помощи constexpr.

А персистентные структуры данных — это почти всегда лишние тормоза (кроме простых списков). И если их использовать, то имеет смысл вообще переходить на Haskell вместо убожества JVM

Да, тормоза. По поводу хаскеля я, внезапно, умудрился уже ответить — это непрактичный язык, который не предназначен для написания полезных программ. Да, JVM печальна, но если проект уже давно пишется на JVM — самое оно. Все-таки обучить дебила писать на кложе можно за пару недель, а чтобы научить дебила писать на хаскеле нужно эдак полгода.

byko3y ★★★★
()
Ответ на: комментарий от anonymous

Ну что, написал хотя-бы единственный макрос за время нашей последней с тобой встречи?

Зачем?

byko3y ★★★★
()
Ответ на: комментарий от Nervous

А что, grep/ag уже отменили? Или для поиска по простому тексту тебе нужно что-то большее?

Выше я уже описал проблему поиска в базе знаний:

Vim или Emacs? А LISP в 2021? (комментарий)

«Грубо говоря, у меня есть заметка про медведей с пандами, которые занимаются реализацией научных проектов на крайнем севере. У меня есть вторая заметка, про ядерные реакторы, которые были успешно построены и испытаны пандами. Я ищу «медведи реакторы» — и не нахожу ничего, поскольку такой заметки нет — есть только про панд и реакторы и только про панд и медведей. Весь смысл Zettelkasten заключается в том, что он помогает детализировать отрывки запомненной информации из мозга, но эти отрывки никогда дословно не совпадают с заметками и часто вообще размазаны по нескольким заметкам.»

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

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 2)
Ответ на: комментарий от ugoday

Самая странная претензия, что я только слышал

Он еще писал, что, например, в org-mode ужасные таблицы. В 2021 пора бы научиться таблицы делать таблицами, а не палочками в текстовом файлике. Суть претензии — разметке не место в записках. Я догадываюсь, что гуру оргмода с годами аскезы пришел навык игнорирования разметки, но объективно это хреновый UX, и ты сам же его проклянешь, если внезапно на рынок завезут org-mode v2 со свершенно иным языком разметки. Просто попробуй записать несколько вещей как ты это делаешь в оргмоде но выдумай на пять минут иную разметку, и попробуй посмотреть, насколько ужасно эти записи выглядят.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Но у тебя есть теги, так? Первая: панды, медведи. Вторая: панды, реактор. Я орг роам не пользуюсь, но почему-то уверен что его можно закастомайзить (именно в своем конфиге) что бы он находил вторую заметку по запросу «медведи, реактор». Советую тупо спросить на #org-roam или в мейлинг листе, или где они там тусуются.

ключевые слова написаны с опечаткой

используй org-set-tags-command и нажимай таб (он напишет если такого тега нет), у меня никогда не было опечаток

anonymous
()
Ответ на: комментарий от peregrine

и тут вспоминаем про tabnine и copilot… даже не сами компании, а сотрудники. я о таком только мечтаю, чтобы получить токен банковского клиента и перевести лярд на счет в панаме

tz4678 ★★
()
Ответ на: комментарий от byko3y

в org-mode ужасные таблицы

таблицы делать таблицами, а не палочками в текстовом файлике

разметке не место в записках

Дядь, не толсти. Во первых - что там палочка, что там |, что ui-палочка, всем похрен. Зато есть calc, лол. Ну, не нравится как это выглядит, отрисуй и вставь картинку вместо таблицы (а при попадании курсора на таблицу, снова показывай ее текстом. это делается несложно, если руки не из жопы и умеешь читать ман). А, ну да, правда это никому нахрен не сдалось, а так бы был еще и пакет который бы это все делал за тебя. Тегов разметки это тоже касается.

anonymous
()
Ответ на: комментарий от byko3y

в org-mode ужасные таблицы

Ужос!

Суть претензии — разметке не место в записках.

Алло, без разметки вы банальный нумерованный список не сделаете.

но объективно это хреновый UX,

субъективно.

, если внезапно на рынок завезут org-mode v2 со свершенно иным языком разметки

Ну, спроектируйте что-то принципиально лучшее, заодно не забыв обосновать, что оно именно лучшее, а не просто другое. Я посмотрю.

выдумай на пять минут иную разметку,

Вы эту тему подняли, вам и карты в руки.

ugoday ★★★★★
()
Ответ на: комментарий от mertvoprog

Вообще-то медийка которая пиарит кубики (особенно с модами) майнтест пробовала, но будем адекватными, майнтест сырой, имеет кучу багов и игры в него так и не завезли.

peregrine ★★★★★
()
Ответ на: комментарий от byko3y

на каждый чих ты вынужден городить сложный конструкции на монадах-контейнерах просто для того, чтобы написать алгоритм «напечатать Hello, напечатать World». Каждый шаг — боль, каждый шаг — превозмогание, но нет «мы привыкли, нам нормально».

Э-м, не понял, где тут сложные конструкции:

do
  print "Hello"
  print "World"
korvin_ ★★★★★
()
Ответ на: комментарий от anonymous

Но у тебя есть теги, так? Первая: панды, медведи. Вторая: панды, реактор

Знал бы прикуп — жил бы в сочи. Вся проблема организации информации заключается в том, что ты никогда заранее не знаешь ее структуры. Ты оттегировал «панды, медведи», «панды, реактор» — а в реальности ищешь только по типа реакторов. Хорошо, оттэгировал по типам реакторов — но искать будет по регионам. И по итогу у тебя тэги содержат половину содержимого заметки. А когда ты настолько интенсивно тэгируешь всё подряд, то внезапно выясняется, что проблемой стал поиск по тэгам, поскольку где-то похожие тэги используются для совершенной разной информации, где-то похожа информация обозначена совершенно разными тэгами, например «медведи» и «гризли» (что потенциально опять-таки можно превратить в избыточное тэгирование: «гризли, медведи, животные, фауна, четырехногие, млекопитающие», что рискует превысить объем содержания заметки).

используй org-set-tags-command и нажимай таб (он напишет если такого тега нет), у меня никогда не было опечаток

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

byko3y ★★★★
()

vim придуман для слепого 10-пальцевого набора в те далекие времена, когда древние боги были мстительными и жестокими… данный навык для современного программиста является сомнительным достоинством, ведь тому в день приходится писать по 20-30 строчек, а остальное время читать документацию… но тем не менее vim знать нужно, он по дефолту в любом дистре есть в отличии от nano, то чтобы отредактировать конфиги на сервачке тебе в приницпе достаточно пары часов на прохождение туториала онлайн и практических упражений. я могу только предположить, что в vim’e удобно верстать научные статьи, всякие формулы из закорючек набирать в latex, потому как на линукс вменяемых редакторов для такого нет, да и 10-пальцевый набор в таком деле довольно важен

tz4678 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.