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/a
Test/Spezifikation ausführen (Datei, nächster, letzter, alle)
Andere:
- Vim suspendieren
Ctrl+z
und 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