haelle.vimrc
Ansible vimrc
Eine Ansible-Rolle zur Installation von NeoVim mit einigen Plugins.
Es werden Ansible-Community-Tasks benötigt:
ansible-galaxy collection install community.general
Abhängigkeiten
- ⚠ Warnung: Diese Installation installiert NodeJS & npm über den Paketmanager. ⚠
- Installiere Fzf und Ag für die Suche.
Ziele
Umfassende Unterstützung für folgende Sprachen/Syntax:
- Ruby/RoR
- HTML
- Javascript
- VueJS
- React
- Ansible
- JSON
- YAML
- Markdown
- C#
Das Ziel ist, 0 fehlerhafte Verhaltensweisen zu haben.
Theme & Schriftart
Das aktuelle Theme ist slate (desert, industry sind ebenfalls gut); ändere es mit :colorscheme xxx, siehe verfügbare mit Tab.
Die aktuelle Schriftart ist MesloLGS NF Regular (unterstützt Emojis), eingestellt für Zsh.
Plugins
Plugins installieren: :PlugInstall (bereits von Ansible installiert).
Navigation
Hilfe: Verwende :help keycodes, um die Vim-Keycodennamen anzuzeigen.
Möglichkeit, mit Splits, Tabs und Tmux zu navigieren:
<C-w f>: im Split öffnen<C-w gf>: im Tab öffnen<C-⬅,⬆,⬇,➡>: Panelnavigation<C-w-⬅,⬆,⬇,➡>: Panel verschiebengt: zwischen Vim-Tabs wechseln<C-b>: Tmux-Navigation auslösen
Aktive Funktionen
gd: zur Definition springengi: zur Implementierung springengr: durch Referenzen navigierengf: zur Datei springen (nur für Ruby/Rails)gg=G: Code neu formatierenF2: Variable / Methode / Klasse umbenennen<C-k>: Methodendefinition anzeigenqf: Linter-Fehler beheben - funktioniert nicht gut...fr: Formatter auf der aktuellen Zeile ausführen (funktioniert nicht bei Solargraph/Ruby)fa: Formatter für die gesamte Datei ausführen<C-o>: zurück<C-s>: speichern<C-space>: Autovervollständigung auslösen<tab>: durch Vorschläge zur Autovervollständigung navigieren<C-c>: Kommentar hinzufügen / entfernen (Zeile oder Auswahl)bufdo!:!verwenden, um die Dateien nicht zu speichern (mit dieser Konfiguration ist es erforderlich...)
Ruby- und Rails-bezogen:
<C-q>: zwischen Ruby-Spezifikation und Datei wechseln<C-w>t/s/l/aTest/Spezifikation ausführen (Datei, nächster, letzter, alle)
Andere:
- Vim suspendieren
Ctrl+zund mit fg zurückkommen.
Automatische / passive Funktionen
- Rechtschreibprüfung
- Syntax-Hervorhebung
- Automatisches Linting im Gutter & schwebendem Fenster
- Überall 2 Leerzeichen für Tab verwenden
- Cursorposition zwischen den Sitzungen merken
- Leerzeilen beim Speichern entfernen
- Leerzeichen trimmen
- Alle unsichtbaren Zeichen anzeigen
- 'TODO/FIXME/XXX' Schlüsselwörter hervorheben
- Bessere Größenanpassung von Vim
- Alle Arten von Paaren () [], Tags hinzufügen...
- Ruby-Paare (def/end, do/end) hinzufügen
- Git-Infos im Gutter hinzufügen
- Linter-Infos im Gutter oder mit Unterstreichung anzeigen
- Methodendefinition anzeigen, wenn verfügbar (verwende
<C-a>und<C-b>zum Scrollen)
Suche
Aktiv:
<C-f>: Suche in der aktuellen Datei (Basis-Vim)<Shift-f>: Suche in allen Dateien (verwende fzf.vim / ag)- Warnung: Du musst möglicherweise die Terminal-Suche deaktivieren, damit es funktioniert.
<Esc>: Suche abbrechen (Hervorhebung abbrechen)<C-p>: Datei nach Namen suchen (verwende fzf.vim)Enter: öffnen<C-t>: in neuem Tab öffnen<C-x>: im horizontalen Split öffnen<C-v>: im vertikalen Split öffnen
Passiv:
- Ergebnisse in Dunkelgrün hervorheben
- Aktuelle Auswahl mit blinkendem Cursor hervorheben
Seitenleiste (NerdTree)
Aktiv
<C-n>: NerdTree öffnen/schließenEnter: Datei öffneni: im horizontalen Split öffnens: im vertikalen Split öffnen- ... siehe NerdTree-Dokumentation
Passiv
- Icons für Dateien
- Symbole basierend auf dem Git-Status
- Einige Ordner ignorieren (
node_modules,.gitignore)
Ruby - Sehen heißt Glauben
F4/F5/F6/F7 markieren/ausführen/markieren & ausführen/Markierungen löschen.
Eroberung der Autovervollständigung
Plugins werden beim ersten Start installiert.
Für Solargraph musst du es für jede Ruby-Version installieren, mit der du arbeitest:
:InstallGems
Nützliche Befehle:
:CocInfo:CocList commands:checkhealth:CocList extensions:call CocAction('format'):CocList marketplace python
Beachte die verfügbaren Erweiterungen:
- javascriptreact
- typescript
- typescriptreact
- typescript.tsx
- graphql
Rollenvariablen
Keine verbindlichen Parameter, alle Parameter befinden sich in defaults/main.yml.
Beispiel-Playbook
- hosts: localhost
roles:
- role: vimrc
vim_user: foo
Entwicklungsnutzung
Um es lokal auszuführen, erstelle einen Symlink: cd /etc/ansible/roles & sudo ln -s /path/to/vimrc .
Lizenz
BSD
ansible-galaxy install haelle.vimrc