Repository für den Vim Workshop in der O-Phase 2019
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
5.8 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. \documentclass[xetex]{beamer}
  2. \usepackage[ngerman]{babel}
  3. \usepackage{hyperref}
  4. \usepackage[default]{sourcesanspro}
  5. \usepackage[scale=0.9]{sourcecodepro}
  6. \usepackage{graphicx}
  7. \usepackage{keystroke}
  8. \usepackage{csquotes}
  9. \usepackage{minted}
  10. %\setmainfont{Source Serif Pro}
  11. %Information to be included in the title page:
  12. \title{How to VIM}
  13. \subtitle{Eine kurze Einführung in den Texteditor vim}
  14. \author{Marcel Schneider\\{marcel@webschneider.org}}
  15. \institute{Georg-August-Universität Göttingen}
  16. \date{Info-O-Phase 2018}
  17. \newcommand*{\kbd}[1]{\keystroke{\texttt{#1}}}
  18. \begin{document}
  19. \frame{\titlepage}
  20. \begin{frame}
  21. \frametitle{Was ist das?}
  22. \emph{V}i \emph{Im}proved
  23. \begin{itemize}
  24. \item 1991 erstmals veröffentlicht
  25. \item Erweiterung von \emph{vi} (1976), welcher auf \emph{ed} (1971)
  26. aufbaute
  27. \item Üblicherweise kein GUI, arbeitet im Terminal
  28. \item Ungewöhnliche, aber hocheffiziente Eingabemöglichkeiten
  29. \item Bietet Vielzahl an Funktionen, per Plugins noch erweiterbar
  30. \item Quelle vieler Memes
  31. \end{itemize}
  32. \end{frame}
  33. \begin{frame}{Memes}
  34. \begin{center}
  35. % https://img.devrant.io/devrant/rant/r_170390_1mBnJ.jpg
  36. \includegraphics[height=5cm]{img/vim-luck-brian.jpg}
  37. %https://www.barbarianmeetscoding.com/images/one-does-not-simply-learn-vim.jpg
  38. \includegraphics[height=5cm]{img/one-does-not-simply-learn-vim.jpg}
  39. \end{center}
  40. \end{frame}
  41. \begin{frame}{Memes}
  42. \includegraphics[width=\textwidth]{img/iamdeveloper.png}
  43. \end{frame}
  44. \begin{frame}{Vim beenden}
  45. Mit folgendem Kommando wird Vim beendet
  46. \keystroke{:} \keystroke{q}
  47. \end{frame}
  48. \begin{frame}{Modi in Vim}
  49. Es gibt im Wesentlichen drei verschiedene Modi:
  50. \begin{enumerate}
  51. \item Normal mode
  52. \item Insert mode
  53. \item Visual mode
  54. \end{enumerate}
  55. \end{frame}
  56. \begin{frame}{Normal mode}
  57. \begin{itemize}
  58. \item Standardmodus, Vim startet mit diesem
  59. \item Alle Eingaben werden als Kommandos interpretiert
  60. \item Wird per \Esc aus anderen Modi erreicht
  61. \end{itemize}
  62. \begin{center}
  63. \includegraphics[width=0.9\textwidth]{img/normal-mode.png}
  64. \end{center}
  65. \end{frame}
  66. \begin{frame}{Insert mode}
  67. \begin{itemize}
  68. \item Eingabemodus, \enquote{normales} Verhalten, wie aus anderen
  69. Editoren bekannt
  70. \item Wird im Normal mode per \kbd{i}/\kbd{I} oder
  71. \kbd{a}/\kbd{A} erreicht
  72. \end{itemize}
  73. \begin{center}
  74. \includegraphics[width=0.9\textwidth]{img/insert-mode.png}
  75. \end{center}
  76. \end{frame}
  77. \begin{frame}{Visual Mode}
  78. \begin{itemize}
  79. \item In diesem Modus kann Text selektiert werden
  80. \item Selektion kann bearbeitet/gelöscht werden, oder als Argument für
  81. ein Kommando dienen
  82. \item Funktioniert Zeilen- und Blockweise
  83. \item Aufruf per \kbd{v}/\kbd{V}
  84. \end{itemize}
  85. \begin{center}
  86. \includegraphics[width=0.8\textwidth]{img/visual-mode.png}
  87. \end{center}
  88. \end{frame}
  89. \begin{frame}[fragile]{Protipp: Esc-Taste}
  90. Tauscht die Belegung von \kbd{Esc} und \kbd{CapsLock}, z.B. mit folgendem
  91. Eintrag in \url{~/.profile} oder \url{~/.bashrc}: \\
  92. \begin{minted}[stripall]{bash}
  93. xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
  94. \end{minted}
  95. \end{frame}
  96. \begin{frame}{Bewegung im Normal Mode}
  97. Der Cursor wird nicht mit den Pfeiltasten bewegt, sondern:
  98. \begin{tabular}{rl}
  99. \kbd{h} & Nach links \\
  100. \kbd{j} & Nach unten \\
  101. \kbd{k} & Nach oben \\
  102. \kbd{l} & Nach rechts
  103. \end{tabular}
  104. \end{frame}
  105. \begin{frame}{Herkunft der hjkl-Tasten}
  106. % http://vintagecomputer.ca/wp-content/uploads/2015/01/LSI-ADM3A-full-keyboard.jpg
  107. \begin{center}
  108. \includegraphics[width=0.9\textwidth]{img/adm3a.jpg}
  109. \end{center}
  110. \end{frame}
  111. \begin{frame}{Homerow}
  112. % https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/QWERTY-home-keys-position.svg/1280px-QWERTY-home-keys-position.svg.png
  113. \begin{center}
  114. \includegraphics[width=0.9\textwidth]{img/homerow.png}
  115. \end{center}
  116. \end{frame}
  117. \begin{frame}{Text Objects --- Bewegung}
  118. Dateiinhalt wird nicht als Abfolge einzelner Zeichen betrachtet, sondern
  119. als \enquote{Wörter}:
  120. \begin{table}[h]
  121. \begin{tabular}{rl}
  122. \kbd{w}/\kbd{W} & Anfang eines Wortes/WORTES \\
  123. \kbd{e}/\kbd{E} & Ende eines Wortes/WORTES \\
  124. \kbd{b}/\kbd{B} & Vorheriges Wort/WORT
  125. \end{tabular}
  126. \end{table}
  127. \end{frame}
  128. \begin{frame}{Vim-Spiel}
  129. \url{https://vim-adventures.com/}
  130. \end{frame}
  131. \begin{frame}{Text Objects --- Selektion}
  132. % cheatsheet http://i.imgur.com/YLInLlY.png
  133. Operatoren:
  134. \begin{table}[h]
  135. \centering
  136. \begin{tabular}{rl}
  137. \kbd{d} & Löschen (delete) \\
  138. \kbd{y} & Kopieren (yank) \\
  139. \kbd{c} & Ändern (change) \\
  140. \kbd{v} & Markieren (visual)
  141. \end{tabular}
  142. \end{table}
  143. Modifikatoren:
  144. \begin{table}[h]
  145. \centering
  146. \begin{tabular}{rl}
  147. \kbd{a} & Alles, mit Leerzeichen (all) \\
  148. \kbd{i} & Inhalt, ohne Leerzeichen (inner) \\
  149. \end{tabular}
  150. \end{table}
  151. Bewegung (motion):
  152. \begin{table}[h]
  153. \centering
  154. \begin{tabular}{rl}
  155. \kbd{w}/\kbd{W} & Wort (ohne Satzzeichen)/WORT (mit Satzzeichen)\\
  156. \kbd{s} & Satz \\
  157. %\kdb{(} & Geklammerter Block
  158. \end{tabular}
  159. \end{table}
  160. \end{frame}
  161. \begin{frame}[fragile]{Text Objects --- Selektion --- Beispiele}
  162. \begin{itemize}
  163. \item \kbd{c}\kbd{a}\kbd{w}: change all word
  164. \item \kbd{c}\kbd{a}\kbd{W}: change all WORD
  165. \item \kbd{d}\kbd{i}\kbd{\}}: delete in \verb|{}|
  166. \item \kbd{v}\kbd{a}\kbd{)}: visual all \verb|()|
  167. \end{itemize}
  168. \end{frame}
  169. \end{document}