Changeset e66c095 for content/presentations
- Timestamp:
- Feb 24, 2021, 6:32:42 PM (4 years ago)
- Branches:
- master
- Children:
- 9b7e401
- Parents:
- 0ebefc8
- git-author:
- Mikhail Kirillov <w96k@…> (02/24/21 18:32:12)
- git-committer:
- Mikhail Kirillov <w96k@…> (02/24/21 18:32:42)
- Location:
- content/presentations/emacs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
content/presentations/emacs/emacs-polyglot.tex
r0ebefc8 re66c095 1 % Created 202 0-06-30 Вт 14:101 % Created 2021-01-31 Вс 22:05 2 2 % Intended LaTeX compiler: pdflatex 3 3 \documentclass[article,12pt,notitlepage,notitle,oneside,twocolumn]{beamer} … … 27 27 pdfkeywords={}, 28 28 pdfsubject={}, 29 pdfcreator={Emacs 2 6.3 (Org mode 9.1.9)},29 pdfcreator={Emacs 28.0.50 (Org mode 9.4)}, 30 30 pdflang={Russian}} 31 31 \begin{document} … … 34 34 35 35 \section*{Вступление} 36 \label{sec:org 42b6a8a}37 \begin{frame}[label={sec:org 279b7ec}]{Текстовый редактор}36 \label{sec:org270706b} 37 \begin{frame}[label={sec:orgef42780}]{Текстовый редактор} 38 38 Текстовый редактор необходим тем, кто хочет набирать и сохранять 39 39 текст в памяти компьютера. Это может понадобиться программистам и 40 40 тем, кто хочет писать заметки и документы. 41 41 \end{frame} 42 \begin{frame}[label={sec:org decb924}]{Свобода}42 \begin{frame}[label={sec:orgf7e3213}]{Свобода} 43 43 \begin{itemize} 44 44 \item Пользователь хочет понимать работу одного из базовых инструментов … … 51 51 \end{frame} 52 52 53 \begin{frame}[label={sec:org 40c2ead}]{О чём доклад}53 \begin{frame}[label={sec:orgd35f2b3}]{О чём доклад} 54 54 Мы рассмотрим использование редактора GNU Emacs для выполнения 55 55 следующих задач: … … 62 62 63 63 \section*{GNU} 64 \label{sec:org 2a3d776}65 \begin{frame}[label={sec:org 9efb61d}]{GNU/Emacs}64 \label{sec:orgbd38074} 65 \begin{frame}[label={sec:org8ddd1a2}]{GNU/Emacs} 66 66 \begin{center} 67 67 \includegraphics[width=100]{./emacs.png} … … 72 72 \end{frame} 73 73 74 \begin{frame}[label={sec:org 0769163}]{Кто пользуется}74 \begin{frame}[label={sec:org9c9de1b}]{Кто пользуется} 75 75 Имаксом в той или иной степени пользовались следующие люди: 76 76 \begin{itemize} 77 \item Линус аТорвальдс77 \item Линус Торвальдс 78 78 \item Дональд Кнут 79 79 \item Юкихиро Матсумото … … 82 82 \item Джо Армстронг 83 83 \item Эрик Реймонд 84 \item Марк Цукерберг 85 \item Джонатан Блоу 84 \item Андрей Александреску 86 85 \end{itemize} 87 86 … … 89 88 \end{frame} 90 89 91 \begin{frame}[label={sec:org 2f76c4c}]{Главный экран}90 \begin{frame}[label={sec:org4a88c37}]{Главный экран} 92 91 Если открыть Имакс, то нас встретит следующая надпись:\\ 93 92 … … 99 98 \end{frame} 100 99 101 \begin{frame}[label={sec:org 76a25a8}]{GNU is not Unix}100 \begin{frame}[label={sec:org4366064}]{GNU is not Unix} 102 101 \begin{center} 103 102 \includegraphics[height=60]{./gnu.png} … … 108 107 \end{frame} 109 108 110 \begin{frame}[ shrink=10,label={sec:orgbcd49e6}]{Свободы GNU}109 \begin{frame}[label={sec:orgcd64982},shrink=10]{Свободы GNU} 111 110 \begin{block}{Свобода 0} 112 111 Свобода выполнять программу как вам угодно в любых целях. … … 130 129 \end{frame} 131 130 132 \begin{frame}[label={sec:org d64f482}]{Больше о GNU}131 \begin{frame}[label={sec:org4dc5338}]{Больше о GNU} 133 132 Деятельность данного фонда подробно описана в книге "\href{https://en.wikipedia.org/wiki/Free\_as\_in\_Freedom}{Free as in 134 133 Freedom}", которая доступна на русском языке. … … 139 138 \end{frame} 140 139 \section*{Редакторы} 141 \label{sec:orgb 69dbe8}142 \begin{frame}[label={sec:org 44b2ca8}]{Другие редакторы}140 \label{sec:orgb174c3f} 141 \begin{frame}[label={sec:org7e38ffa}]{Другие редакторы} 143 142 Рассмотрим следующие текстовые редакторы, которые возможно 144 143 используют ваши друзья и коллеги: … … 157 156 \end{frame} 158 157 159 \begin{frame}[label={sec:org dcc7add}]{Недостатки популярных редакторов}158 \begin{frame}[label={sec:org653b877}]{Недостатки популярных редакторов} 160 159 \begin{block}{IDE от JetBrains} 161 160 \begin{itemize} … … 173 172 \end{block} 174 173 \end{frame} 175 \begin{frame}[label={sec:org 6e419d0}]{Недостатки популярных редакторов}174 \begin{frame}[label={sec:orgd03f730}]{Недостатки популярных редакторов} 176 175 \begin{block}{VS Code} 177 176 \begin{itemize} … … 190 189 191 190 \section*{Vim и Emacs} 192 \label{sec:org 6a3ba7c}193 \begin{frame}[label={sec:org ea1c784}]{Почему Emacs и Vim непопулярны}191 \label{sec:org053b5d5} 192 \begin{frame}[label={sec:orgbee7fa3}]{Почему Emacs и Vim непопулярны} 194 193 \begin{center} 195 194 \includegraphics[height=120]{./learning-curve.jpg} … … 199 198 \end{frame} 200 199 201 \begin{frame}[label={sec:org 2689717}]{Миф: Emacs не настолько сложен}200 \begin{frame}[label={sec:org00c7d22}]{Миф: Emacs не настолько сложен} 202 201 Мы видим, что вход в вим высокий. С другой стороны у Emacs кривая 203 202 обучения начинается с самого низа, но потом закручивается. Что это … … 205 204 \end{frame} 206 205 207 \begin{frame}[label={sec:org ac94f93}]{Миф: Emacs не настолько сложен}206 \begin{frame}[label={sec:orgee95859}]{Миф: Emacs не настолько сложен} 208 207 В отличии от Vim GNU/Emacs имеет рядовые инструменты для работы с 209 208 текстом: поддержка мыши (выделение, скролл), стрелки, улучшенная … … 213 212 позволяют превратить его в многофункциональное IDE-подобное нечто. 214 213 \end{frame} 215 \begin{frame}[label={sec:org e876f67}]{M-x butterfly}214 \begin{frame}[label={sec:orgb31e22c}]{M-x butterfly} 216 215 \begin{center} 217 216 \includegraphics[height=140]{./real_programmers.png} … … 220 219 Шуточная функция поставляется в GNU/Emacs после появления комикса. 221 220 \end{frame} 222 \begin{frame}[label={sec:org 0333693}]{Схожести и отличия Emacs / Vim}221 \begin{frame}[label={sec:orgcdd19b9}]{Схожести и отличия Emacs / Vim} 223 222 \begin{center} 224 223 \includegraphics[height=120]{./emacs-vim.png} … … 228 227 может показаться. 229 228 \end{frame} 230 \begin{frame}[label={sec:org 9d3b9d0}]{Схожести}229 \begin{frame}[label={sec:org4c73dd4}]{Схожести} 231 230 \begin{center} 232 231 \begin{tabular}{lll} … … 244 243 \end{frame} 245 244 246 \begin{frame}[label={sec:org cf0c87a}]{Отличия}245 \begin{frame}[label={sec:orgf488e14}]{Отличия} 247 246 \begin{center} 248 247 \begin{tabular}{lll} … … 261 260 \end{frame} 262 261 263 \begin{frame}[label={sec:org 35714da}]{Что даёт графический клиент}262 \begin{frame}[label={sec:orgd25dd7c}]{Что даёт графический клиент} 264 263 \begin{itemize} 265 264 \item Правильно работающие бинды (например в консоли не сработает C-.) … … 270 269 \end{itemize} 271 270 \end{frame} 272 \begin{frame}[label={sec:org 46682c0}]{(equal :Emacs :Vim) ;; => t}271 \begin{frame}[label={sec:orgbbc7dcd}]{(equal :Emacs :Vim) ;; => t} 273 272 Субъективно Emacs Lisp предоставляет больше возможностей по 274 273 расширению редактора, чем VimScript. Хотя Emacs Lisp и далёк от … … 276 275 соображениям Emacs популярен в частности среди пользователей Vim. 277 276 \end{frame} 278 \begin{frame}[label={sec:org 08c1c32}]{Evil}277 \begin{frame}[label={sec:orga94e58c}]{Evil} 279 278 \begin{center} 280 279 \includegraphics[height=25]{./evil.png} … … 286 285 \end{frame} 287 286 \section*{Возможности} 288 \label{sec:org e8adc42}289 \begin{frame}[label={sec:org 607c99e}]{Что есть в GNU/Emacs}287 \label{sec:org43bed73} 288 \begin{frame}[label={sec:org4074e04}]{Что есть в GNU/Emacs} 290 289 \begin{itemize} 291 290 \item Рантайм Emacs Lisp … … 302 301 \end{itemize} 303 302 \end{frame} 304 \begin{frame}[label={sec:org0 6cbd25}]{Что есть в GNU/Emacs}303 \begin{frame}[label={sec:org033d49c}]{Что есть в GNU/Emacs} 305 304 \begin{itemize} 306 305 \item Интерактивные элементы (кнопки, формы и т.д.) … … 317 316 \end{itemize} 318 317 \end{frame} 319 \begin{frame}[ fragile,label={sec:orgc49ebaf}]{Биндинги Emacs}318 \begin{frame}[label={sec:orgd8e0830},fragile]{Биндинги Emacs} 320 319 Биндинги в Emacs мнемонические. Это значит, что их легко запомнить, 321 320 так как буква биндинга практически всегда что-то обозначает. … … 333 332 \url{http://xahlee.info/kbd/keyboard\_hardware\_and\_key\_choices.html} 334 333 \end{frame} 335 \begin{frame}[ fragile,label={sec:orgba383c8}]{Биндинги Emacs}334 \begin{frame}[label={sec:orgf4d7b18},fragile]{Биндинги Emacs} 336 335 Важным отличием биндингов в редакторе GNU/Emacs является то, что 337 336 они еще и аккордовыми. Это значит, что несколько комбинаций … … 344 343 существует биндинг \alert{C-g}. 345 344 \end{frame} 346 \begin{frame}[ fragile,label={sec:org6f7184e}]{Emacs Lisp}345 \begin{frame}[label={sec:org432244b},fragile]{Emacs Lisp} 347 346 Ядро редактора написано на языке C, остальное -- язык расширений 348 347 Emacs Lisp (25\% C + 75\% Elisp). Лисп -- один из старейших … … 360 359 \end{verbatim} 361 360 \end{frame} 362 \begin{frame}[label={sec:org 8d71279}]{Всё есть функция}361 \begin{frame}[label={sec:org68d629b}]{Всё есть функция} 363 362 Любое действие в редакторе представляет из себя функцию. 364 363 \begin{itemize} … … 371 370 \end{frame} 372 371 373 \begin{frame}[ fragile,label={sec:org772929b}]{Система помощи}372 \begin{frame}[label={sec:org80d3a73},fragile]{Система помощи} 374 373 В GNU/Emacs встроен туториал и очень удобная система помощи. 375 374 \begin{itemize} … … 383 382 \end{itemize} 384 383 \end{frame} 385 \begin{frame}[label={sec:org fb2fcb1}]{Моды}384 \begin{frame}[label={sec:orgb48bc10}]{Моды} 386 385 \alert{Мод} -- это модификация GNU/Emacs, которая включается при 387 386 определенном условии. … … 395 394 \end{itemize} 396 395 \end{frame} 397 \begin{frame}[label={sec:org beeb4b2}]{Мод-лайн}396 \begin{frame}[label={sec:org48a211b}]{Мод-лайн} 398 397 \alert{Мод-лайн} отображает информацию об используемых модах и состоянии 399 398 файла (название, сохранён или нет, позиция курсора, система … … 403 402 запрашивать ввод. 404 403 \end{frame} 405 \begin{frame}[ fragile,label={sec:org413f915}]{Буфер}404 \begin{frame}[label={sec:orgda81d3d},fragile]{Буфер} 406 405 \alert{Буфер} -- это обособленная память с текстом, которой манипулирует 407 406 имакс прежде чем писать на диск. Экран Emacs отображает буфера, … … 418 417 \end{itemize} 419 418 \end{frame} 420 \begin{frame}[label={sec:org fbfd15b}]{Программирование}419 \begin{frame}[label={sec:org8aa2948}]{Программирование} 421 420 Поддерживаются языки: 422 421 \begin{itemize} … … 434 433 Разумеется список можно расширить сторонними пакетами 435 434 \end{frame} 436 \begin{frame}[label={sec:org 8bebf57}]{Программирование}435 \begin{frame}[label={sec:orga8993b2}]{Программирование} 437 436 Также для задач программирования доступны: 438 437 \begin{itemize} … … 445 444 \end{itemize} 446 445 \end{frame} 447 \begin{frame}[label={sec:org 57ba423}]{Система контроля версий}446 \begin{frame}[label={sec:org92dc968}]{Система контроля версий} 448 447 При программировании полезно использовать систему контроля 449 448 версий. Самая распространненая система -- git. Про другие системы … … 460 459 \end{frame} 461 460 462 \begin{frame}[label={sec:org 18084c2}]{Org-mode}461 \begin{frame}[label={sec:orgeefec33}]{Org-mode} 463 462 \alert{Org-mode} -- Markdown на колёсах, декларативный формат описания 464 463 всего и вся, основанный на списке из уровней (Outline). С помощью … … 473 472 \url{https://orgmode.org/worg/org-tutorials/} 474 473 \end{frame} 475 \begin{frame}[label={sec:org 615ce56}]{Tramp}474 \begin{frame}[label={sec:org2e74b07}]{Tramp} 476 475 \begin{quote} 477 476 Вимеры могут привести в аргумент то, что их редактор уже доступен … … 484 483 только при условии отсутствия конфигурации, в Emacs 485 484 \end{frame} 486 \begin{frame}[ fragile,label={sec:org6750b1c}]{Кастомизация}485 \begin{frame}[label={sec:orgecf8204},fragile]{Кастомизация} 487 486 \begin{center} 488 487 \includegraphics[width=.9\linewidth]{./customize.png} … … 492 491 \end{frame} 493 492 \section*{Конфиг} 494 \label{sec:org c92b502}495 \begin{frame}[label={sec:org bd1ab76}]{.emacs / init.el}493 \label{sec:org3aeab6a} 494 \begin{frame}[label={sec:orgc052578}]{.emacs / init.el} 496 495 В качестве конфигурации Emacs использует один из следующих файлов в домашней директории: 497 496 \begin{itemize} … … 504 503 вовсе необязательно в идеале владеть Emacs Lisp. 505 504 \end{frame} 506 \begin{frame}[ fragile,label={sec:org1121d83}]{Пакетный менеджер package.el}505 \begin{frame}[label={sec:org3639e75},fragile]{Пакетный менеджер package.el} 507 506 Для расширения предусмотрен пакетный менеджер, который уже встроен 508 507 в редактор. По-умолчанию доступен только один официальный … … 515 514 Моя конфигурация доступна по адресу \url{https://w96k.ru/emacs.html} 516 515 \end{frame} 517 \begin{frame}[ fragile,label={sec:orgc32e4e0}]{use-package}516 \begin{frame}[label={sec:orge0a0f41},fragile]{use-package} 518 517 \alert{use-package} -- это декларативная обёртка от сообщества для 519 518 package.el. Рекомендую использовать use-package, чтобы ваш конфиг … … 529 528 530 529 \section*{Демо} 531 \label{sec:org d193173}532 \begin{frame}[label={sec:orgd 978a23}]{Создание базового конфига}530 \label{sec:org2b9d6a2} 531 \begin{frame}[label={sec:orgdfb9a4c}]{Создание базового конфига} 533 532 Наглядное создание базового конфига с нуля. 534 533 \end{frame} 535 \begin{frame}[label={sec:org 7055220}]{Редактирование кода}534 \begin{frame}[label={sec:org95874c7}]{Редактирование кода} 536 535 \begin{itemize} 537 536 \item Projectile … … 541 540 \end{itemize} 542 541 \end{frame} 543 \begin{frame}[label={sec:org cbe9531}]{Организация жизни при помощи org-mode}544 \end{frame} 545 \begin{frame}[label={sec:org cc6cf72}]{Ведение документов}542 \begin{frame}[label={sec:orgeda97a3}]{Организация жизни при помощи org-mode} 543 \end{frame} 544 \begin{frame}[label={sec:org33afbfd}]{Ведение документов} 546 545 \end{frame} 547 546 \section*{Дистрибутивы} 548 \label{sec:org e561de9}549 \begin{frame}[label={sec:org bcdd901}]{Vanilla}550 \end{frame} 551 \begin{frame}[label={sec:orgf efc99a}]{Spacemacs}552 \end{frame} 553 \begin{frame}[label={sec:org 87aa05d}]{Doom Emacs}554 \end{frame} 555 \begin{frame}[label={sec:org 1b10d10}]{Prelude}547 \label{sec:org6231087} 548 \begin{frame}[label={sec:orgc525be5}]{Vanilla} 549 \end{frame} 550 \begin{frame}[label={sec:orgfa07411}]{Spacemacs} 551 \end{frame} 552 \begin{frame}[label={sec:orga5c7f90}]{Doom Emacs} 553 \end{frame} 554 \begin{frame}[label={sec:org55417a0}]{Prelude} 556 555 \end{frame} 557 556 \section*{Изучение} 558 \label{sec:org 2076727}559 \begin{frame}[label={sec:org6 016d4b}]{Tutorial}560 \end{frame} 561 \begin{frame}[label={sec:org d2eba74}]{Info emacs}562 \end{frame} 563 \begin{frame}[label={sec:org 79044c3}]{Книги}557 \label{sec:org75135f3} 558 \begin{frame}[label={sec:org6849798}]{Tutorial} 559 \end{frame} 560 \begin{frame}[label={sec:org894c77d}]{Info emacs} 561 \end{frame} 562 \begin{frame}[label={sec:orgddbb791}]{Книги} 564 563 \begin{block}{Mastering Emacs} 565 564 \end{block}
Note:
See TracChangeset
for help on using the changeset viewer.