Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Употреба и скриптиране на Vim във ФМИ 2023

Andrew Radev
February 23, 2023

Употреба и скриптиране на Vim във ФМИ 2023

Уводна лекция на курса "Употреба и скриптиране на Vim" във ФМИ.

Andrew Radev

February 23, 2023
Tweet

More Decks by Andrew Radev

Other Decks in Programming

Transcript

  1. Историята • Стандартния Unix-ки редактор • … ed (1973) •

    Ed Vi Vim (1991) → → • 32 години и още се ползва, че и развива • Bram Moolenaar и една купчина други хора
  2. Историята • Vim, Emacs – дълго време mostly for nerds

    • Rails.vim (може би) trigger-на ренесанса на Vim в модерни времена • Tim Pope – Rails, но и базови (днешно време) неща като pathogen • (Emacs – все още for nerds, но haskell го дръпна малко) • Neovim… повече за него по-късно
  3. Защо Vim? • Клавишни комбинации • Плъгини • Конфигурация ==

    Скриптиране • Употреба ~~ Скриптиране • Users == Makers
  4. Защо курс по Vim? • За да научите Vim •

    За да се научите да бърникате в редактора си (и отвъд него) • Контролиран хаос, 90%-ови решения
  5. Neovim • Thiago de Arruda (2014) – пач за background

    jobs (или multithreading?) • Не се разбират, отцепва се и fundraise-ва • Vim приоритизира стабилност, има смисъл в експериментален форк
  6. Neovim drama • “Брам е тиранин!” • “Брам саботира нашия

    проект!” • В един момент нещата се успокоиха, core members нямат конфликти, просто си вършат работата • Пачове спокойно се разменят напред-назад
  7. “Neovim е blazing fast!” • Технически вярно, защото е предимно

    Vim • Технически, lua (5.1) е по-бърз от Vimscript • (което почти няма значение) • При нужда от performance, винаги има външни инструменти
  8. “Neovim е модерен!” • Lua 5.1 е от 2006та година.

    • Модерната версия на lua е 5.4.
  9. Neovim не е проблема • Хората не знаят какво правят

    • За да ползвате Neovim, трябва да знаете какво правите • За да ползвате Vim, трябва да знаете какво правите • Можете да се научите (очевидно), но трябва да се научите. Neovim не е shortcut, а е tradeoff
  10. In this house, we learn Vimscript • Ще учим Vim,

    ще учим Vimscript, от нулата • Нищо не ви пречи да ползвате Neovim, ще давам акъл за разликите (не са много) • Не очаквайте да ви уча на lua – научете как работи Vim, пък с lua ще се оправите • Не е ли ужасен Vimscript??? Няма ли да сънувате кошмари от него?!?
  11. ?

  12. Предупреждения • Курса е първа година, ще се експериментира малко

    • Присъствието не е задължително, но силно препоръчително • Иска практика. Не много, но редовна
  13. Административни неща • Упражнения: 60т, ежедневно, да кажем 80- 90%

    са за максимума • Проект: 1 x 60 = 60т (задължителен) • + бонуси от участие в час, от предоставяне на помощ в discord • 60т: 3 • 75т: 4 • 90т: 5 • 105т: 6
  14. Оценяване на проекта • Плъгин на Vimscript, може и на

    нещо друго • 30т за функционалност – плъгина прави каквото сте казали, че ще прави • 20т за употреба – не е нужно да сте бързи, нужно е да го можете • 10т за je ne sais quoi – документация, тестове, ефективна вимаджийщина… ще измисля начини да си ги спечелите, или ще се откажа от тази графа
  15. Административни неща • Четвъртък, зала 321… освен ако не я

    сменя • Време: 19:15 – 21:00 • Ще опитам да правя видео записи в секция “Материали” • За важни неща, следете https://vim-fmi.bg, или #announcements в Discord: https://discord.gg/nsjmMUaaC5 • За контакт, пишете в Discord, или на [email protected]
  16. Административни неща • Регистрирайте се: https://vim-fmi.bg/ • Ако ви няма

    в списъците, пишете • Качете си снимка, ще ви дам 1 точка
  17. Ако искате да пробвате • Отивате във vim.org и следвате

    инструкции: https://www.vim.org/download.php • Ако искате да пробвате, vimtutor е добро начало • (но ще почнем от него следващия път anyway) • Ако искате да излезете?
  18. ?