Browse Source

Weitere Programme

master
Schneider 6 years ago
parent
commit
04d0dca7a2
  1. 82
      README.md

82
README.md

@ -1,14 +1,18 @@
# Vim Workshop # Vim Workshop
# Eine kleine Einführung in den Editor Vim
## Eine kleine Einführung in den Editor Vim
In diesem Repo befindet sich zum einen die Präsentation, zum anderen auch eine In diesem Repo befindet sich zum einen die Präsentation, zum anderen auch eine
Beispiel-Configdatei, die ihr für den Anfang nutzen könnt. Beispiel-Configdatei, die ihr für den Anfang nutzen könnt.
Diese Config setzt [Neovim](https://neovim.io/) voraus. Diese Config setzt [Neovim](https://neovim.io/) voraus.
## Abhängigkeiten ## Abhängigkeiten
Damit alle Plugins korrekt funktionieren, müssen noch weitere Voraussetzungen Damit alle Plugins korrekt funktionieren, müssen noch weitere Voraussetzungen
erfüllt sein. erfüllt sein.
### Python ### Python
Python muss installiert sein (Auf den Rechnern im CIP-Pool der Fall). Python muss installiert sein (Auf den Rechnern im CIP-Pool der Fall).
Darüber hinaus muss die Python-Erweiterung für Neovim per pip installiert Darüber hinaus muss die Python-Erweiterung für Neovim per pip installiert
werden. werden.
@ -19,6 +23,7 @@ pip3 install neovim
``` ```
## Installation ## Installation
Neovim erwartet die Datei im Verzeichnis `~/.config/nvim/`. Neovim erwartet die Datei im Verzeichnis `~/.config/nvim/`.
Folgendes Kommando lädt die Datei herunter und platziert sie im entsprechenden Folgendes Kommando lädt die Datei herunter und platziert sie im entsprechenden
Verzeichnis. Verzeichnis.
@ -32,9 +37,12 @@ Plugins installiert. Nach einem Neustart von nvim sind alle Plugins geladen und
einsatzbereit einsatzbereit
## Enthaltene Plugins ## Enthaltene Plugins
Mit der Config werden einige hilfreiche Plugins mitgeliefert. Schaut euch auf Mit der Config werden einige hilfreiche Plugins mitgeliefert. Schaut euch auf
jeden Fall jedes einmal genauer an. jeden Fall jedes einmal genauer an.
### [Vundle](https://github.com/VundleVim/Vundle.vim) ### [Vundle](https://github.com/VundleVim/Vundle.vim)
Packagemanage für Vim. Packagemanage für Vim.
Neue Plugins können über einen Eintrag in der init.vim installiert werden. Neue Plugins können über einen Eintrag in der init.vim installiert werden.
@ -44,12 +52,24 @@ habt, startet nvim neu, führt `:PlugInstall` aus und startet nvim nochmal neu.
Dann sind die Plugins einsatzbereit. Dann sind die Plugins einsatzbereit.
### [NERD Commenter](https://github.com/scrooloose/nerdcommenter) ### [NERD Commenter](https://github.com/scrooloose/nerdcommenter)
Bietet die passende Kommentarsynntax für diverse Sprachen. Bietet die passende Kommentarsynntax für diverse Sprachen.
Im Normal Mode kann per `<leader> c <space>` ein Kommentar erzeugt, oder Im Normal Mode kann per `<leader> c <space>` ein Kommentar erzeugt, oder
entfernt werden. entfernt werden.
### [surround.vim](https://github.com/tpope/vim-surround)
Verbessertes Arbeiten mit umschließenden Zeichen/Klammern.
Mit diesem Plugin können z.B Klammern geändert werden. Aus `"Hallo, Welt!"` wird
`'Hallo, Welt!'`, indem innerhalb der Anführungszeichen das Kommando `cs"'`
ausgeführt wird.
Guckt in der Readme, es gibt Unterstützung für eine Vielzahl von Zeichen und
Sprachen, zum Beispiel auch HTML und LaTeX.
### [fugitive.vim](https://github.com/tpope/vim-fugitive) ### [fugitive.vim](https://github.com/tpope/vim-fugitive)
Git-Integration. Git-Integration.
Per `:Gstatus` die geänderten Dateien anzeigen lassen. `<Ctrl> n` lässt den Per `:Gstatus` die geänderten Dateien anzeigen lassen. `<Ctrl> n` lässt den
@ -58,23 +78,27 @@ hinzugefügt, per `cc` die Commit-Message geöffnet. Wenn der Buffer gespeichert
wird, wird der Commit ausgeführt. wird, wird der Commit ausgeführt.
### [deoplete.nvim](https://github.com/Shougo/deoplete.nvim) ### [deoplete.nvim](https://github.com/Shougo/deoplete.nvim)
Codeverfollständigungs-Engine
Dieses Plugin bietet das Gerüst, um Codeverfollständigung für andere Sprachen
Codevervollständigungs-Engine
Dieses Plugin bietet das Gerüst, um Codevervollständigung für andere Sprachen
anzubieten. Grob gesagt stellt es das Fenster, in dem die Vorschläge angezeigt anzubieten. Grob gesagt stellt es das Fenster, in dem die Vorschläge angezeigt
werden, zur Verfügung. werden, zur Verfügung.
Mithilfe der Einstellungen in der init.vim kann per <TAB> zwischen den
Mithilfe der Einstellungen in der init.vim kann per `<TAB>` zwischen den
Vorschlägen gewechselt werden. Vorschlägen gewechselt werden.
### [Neosnippet](https://github.com/Shougo/neosnippet.vim) ### [Neosnippet](https://github.com/Shougo/neosnippet.vim)
Snippetunterstützung für Vim Snippetunterstützung für Vim
Mit diesem Plugin werden Snippets, also kleine Templates, die erweitert werden, Mit diesem Plugin werden Snippets, also kleine Templates, die erweitert werden,
unterstützt. unterstützt.
So kann z.B. in einem Markdown-Dokument aus `linkurl` mit `<ctrl> k` `[link](http://)` werden. So kann z.B. in einem Markdown-Dokument aus `linkurl` mit `<ctrl> k` `[link](http://)` werden.
Mit `<ctrl> k` wird außerdem zwischen den Argumenten gewechselt. Mit `<ctrl> k` wird außerdem zwischen den Argumenten gewechselt.
### [easymotion](https://github.com/easymotion/vim-easymotion) ### [easymotion](https://github.com/easymotion/vim-easymotion)
Noch schnellere Motions. Noch schnellere Motions.
Einfach vor die normale Motion (z.B. `w`) zweimal `<leader>` drücken, also z.B. Einfach vor die normale Motion (z.B. `w`) zweimal `<leader>` drücken, also z.B.
@ -83,6 +107,7 @@ markiert. Mit diesen Buchstaben kann sofort zu dem jeweiligen Wort gesprungen
werden. werden.
### [fzf](https://github.com/junegunn/fzf) ### [fzf](https://github.com/junegunn/fzf)
Extrem hilfreicher fuzzy file finder, auch auf der Kommandozeile. Extrem hilfreicher fuzzy file finder, auch auf der Kommandozeile.
Dieses Plugin installiert fzf, nicht nur in Vim. Proviert mal auf der Dieses Plugin installiert fzf, nicht nur in Vim. Proviert mal auf der
@ -93,4 +118,53 @@ Programm auseinander, es kann die Produktivität ungemein steigern.
In nvim bietet es per `<ctrl> p` die Dateisuche. In nvim bietet es per `<ctrl> p` die Dateisuche.
### [Asynchronous Lint Engine](https://github.com/w0rp/ale) ### [Asynchronous Lint Engine](https://github.com/w0rp/ale)
Lintengine für diverse Linter und Sprachen Lintengine für diverse Linter und Sprachen
## Weitere Plugins
Für fast jede Sprache und jeden Anwendungszweck gibt es reichlich Plugins,
welche Codevervollständigung, erweitertes Syntaxhighlighting oder andere
Funktionalitäten anbietet. Sucht einfach und lest euch in die Plugins ein.
Vundle bietet die Funktion, dass Plugins nur für bestimmte Dateitypen geladen
werden. JavaScript-Plugins müssen zum Beispiel nur bei JavaScript-Dateien
geladen werden.
Guckt dazu auch mal in meine [produktive init.vim](https://git.schneider-hosting.de/schneider/dotfiles/src/branch/master/init.vim#L42)
## Ausblick
Sobald ihr die Movements verinnerlicht habt, wollt ihr sie auch in anderen
Programmen anwenden.
### Firefox
Mit dem Plugin
[Vimium-FF](https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/) braucht
man selbst im Browser kaum noch die Maus. Mit `f` kann man Links auswählen, `gi`
legt den Fokus auf das erste Inputfield, `O` öffnet einen neuen Tab mit Suche.
### Kommandozeile (bash/zsh)
Auch auf der Kommandozeile kann man die Vim-Keybindings nutzen:
Für bash in die `.bashrc` einfügen:
```bash
set -o vi
```
Für zsh in die `.zshrc` eintragen:
```bash
bindkey -v
```
### Andere Programme
Auch viele andere Programme bieten Vim-Bindings an. Sei es eine komplette
Emulation per Add-On, oder simple Bewegungen per `hjkl`.
So kann beispielsweise eine mächtige IDE wie IntelliJ IDEA mit den gewohnten
Tastaturbewegungen benutzt werden. Gerade für umfangreichere Java-Projekte
(spätestens im APP) bietet sich IntelliJ IDEA mit dem Plugin
[IdeaVim](https://plugins.jetbrains.com/plugin/164-ideavim) an.
Loading…
Cancel
Save