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.

96 lines
3.8 KiB

  1. # Vim Workshop
  2. # Eine kleine Einführung in den Editor Vim
  3. In diesem Repo befindet sich zum einen die Präsentation, zum anderen auch eine
  4. Beispiel-Configdatei, die ihr für den Anfang nutzen könnt.
  5. Diese Config setzt [Neovim](https://neovim.io/) voraus.
  6. ## Abhängigkeiten
  7. Damit alle Plugins korrekt funktionieren, müssen noch weitere Voraussetzungen
  8. erfüllt sein.
  9. ### Python
  10. Python muss installiert sein (Auf den Rechnern im CIP-Pool der Fall).
  11. Darüber hinaus muss die Python-Erweiterung für Neovim per pip installiert
  12. werden.
  13. ```bash
  14. pip install neovim
  15. pip3 install neovim
  16. ```
  17. ## Installation
  18. Neovim erwartet die Datei im Verzeichnis `~/.config/nvim/`.
  19. Folgendes Kommando lädt die Datei herunter und platziert sie im entsprechenden
  20. Verzeichnis.
  21. ```bash
  22. curl --create-dirs -o ~/.config/nvim/init.vim https://git.schneider-hosting.de/uni/vim-workshop/raw/branch/master/init.vim
  23. ```
  24. Nun kann Neovim per `nvim` gestartet werden und per `:PlugInstall` werden die
  25. Plugins installiert. Nach einem Neustart von nvim sind alle Plugins geladen und
  26. einsatzbereit
  27. ## Enthaltene Plugins
  28. Mit der Config werden einige hilfreiche Plugins mitgeliefert. Schaut euch auf
  29. jeden Fall jedes einmal genauer an.
  30. ### [Vundle](https://github.com/VundleVim/Vundle.vim)
  31. Packagemanage für Vim.
  32. Neue Plugins können über einen Eintrag in der init.vim installiert werden.
  33. Schaut euch die Syntax bei den vorhandenen Beispielen an.
  34. Nachdem ihr einen Eintrag der Form `Plug 'url/repo' eingetragen und gespeichert
  35. habt, startet nvim neu, führt `:PlugInstall` aus und startet nvim nochmal neu.
  36. Dann sind die Plugins einsatzbereit.
  37. ### [NERD Commenter](https://github.com/scrooloose/nerdcommenter)
  38. Bietet die passende Kommentarsynntax für diverse Sprachen.
  39. Im Normal Mode kann per `<leader> c <space>` ein Kommentar erzeugt, oder
  40. entfernt werden.
  41. ### [fugitive.vim](https://github.com/tpope/vim-fugitive)
  42. Git-Integration.
  43. Per `:Gstatus` die geänderten Dateien anzeigen lassen. `<Ctrl> n` lässt den
  44. Cursor zur nächsten Datei springen. Mit `-` wird die Datei zum Commit
  45. hinzugefügt, per `cc` die Commit-Message geöffnet. Wenn der Buffer gespeichert
  46. wird, wird der Commit ausgeführt.
  47. ### [deoplete.nvim](https://github.com/Shougo/deoplete.nvim)
  48. Codeverfollständigungs-Engine
  49. Dieses Plugin bietet das Gerüst, um Codeverfollständigung für andere Sprachen
  50. anzubieten. Grob gesagt stellt es das Fenster, in dem die Vorschläge angezeigt
  51. werden, zur Verfügung.
  52. Mithilfe der Einstellungen in der init.vim kann per <TAB> zwischen den
  53. Vorschlägen gewechselt werden.
  54. ### [Neosnippet](https://github.com/Shougo/neosnippet.vim)
  55. Snippetunterstützung für Vim
  56. Mit diesem Plugin werden Snippets, also kleine Templates, die erweitert werden,
  57. unterstützt.
  58. So kann z.B. in einem Markdown-Dokument aus `linkurl` mit `<ctrl> k` `[link](http://)` werden.
  59. Mit `<ctrl> k` wird außerdem zwischen den Argumenten gewechselt.
  60. ### [easymotion](https://github.com/easymotion/vim-easymotion)
  61. Noch schnellere Motions.
  62. Einfach vor die normale Motion (z.B. `w`) zweimal `<leader>` drücken, also z.B.
  63. `<leader><leader>w`. Danach werden die nachfolgenden Worte mit Buchstaben
  64. markiert. Mit diesen Buchstaben kann sofort zu dem jeweiligen Wort gesprungen
  65. werden.
  66. ### [fzf](https://github.com/junegunn/fzf)
  67. Extrem hilfreicher fuzzy file finder, auch auf der Kommandozeile.
  68. Dieses Plugin installiert fzf, nicht nur in Vim. Proviert mal auf der
  69. Kommandozeile `<ctrl> t` aus. Oder `nvim ~/.config/nvi**` und drückt dann
  70. `<TAB>`. Es werden alle gefundenen Dateien angezeigt. Per `<ENTER>` übernehmt
  71. ihr den Vorschlag in die Kommandozeile. Setzt euch auf jeden Fall mit dem
  72. Programm auseinander, es kann die Produktivität ungemein steigern.
  73. In nvim bietet es per `<ctrl> p` die Dateisuche.
  74. ### [Asynchronous Lint Engine](https://github.com/w0rp/ale)
  75. Lintengine für diverse Linter und Sprachen