Skip to main content

2 posts tagged with "neovim"

View All Tags

Mein IaC-Workflow mit Tmux (für OpenTofu und Terraform)

· 2 min read
Janno Tjarks
DevOps Engineer

Screenshot des Neovim Tabs in TMUX

2021 begann für mich eine Reise in ein Rabbit Hole, dass bisher immer noch nicht sein Ende erreicht hat: Ich bin Terminal Enthusiasts geworden.

Von Mutt (Mails) über newsboat (RSS Feed Reader) bis hin zum spotify-player nutze ich in meinem Alltag nahezu immer Tools im Terminal. Spezifisch für meinen Arbeitsalltag oder Software-Entwicklung im Privaten setze ich auf Neovim als Code Editor und das Git CLI für Softwareversionierung. Terraform/OpenTofu sowie kubectl sind per se auch CLI Tools.

(Die einzige Aufnahme ist der Browser - Ich weiß auch nicht wieso, aber w3m oder Lynx ist mir dann doch zu abstract)

Diese exzessive Nutzung des Terminals vereinfacht mir tmux. tmux ist ein sogenannter Terminal Multiplexer. Es ermöglicht, mehre Terminal Sessions zu erstellen und zu verwalten. Somit lassen sich quasi Tabs von Terminal Sessions erstellen.

Wie es sich für eine Unix-Anwendung gehört: Man kann wundbar mit der tmux CLI Skripten:

tmux-iac-setup
#!/bin/bash

DIRECTORY=$(pwd)
BASENAME=$(basename $(pwd))

tmux rename-session $BASENAME
tmux rename-window nvim
tmux send-keys 'nvim' Enter
tmux new-window -c $DIRECTORY -n tofu
tmux new-window -c $DIRECTORY -n git
tmux send-keys 'git status' Enter
tmux new-window -c $DIRECTORY -n terminal
tmux select-window -t 1

Das vorhergehende Skript baut mir meine IaC spezifische Arbeitsumgebung aus vier Tabs:

  1. Neovim zum Bearbeiten des IaC Codes.
  2. Eine Terminal Session spezifisch zum Ausführen der IaC Tools, z.B. für tofu init oder terraform apply.
  3. Eine weitere Terminal Session für die Arbeit mit git. Es wird bei Aufbau der Arbeitsumgebung automatisch ein git status ausgeführt.
  4. Schlussendlich eine weitere Terminal Session für Experimente oder Spielereien, wie das Ausführen von Befehlen in der Azure CLI oder zum Ausführen von Lintern wie tflint.

Screenshot des Git Tabs in TMUX

All diese Tabs nutzen als Working Directory das Directory, indem das Skript initial ausgeführt wurde.

In tmux lassen sich mehrere Terminals als eine Session zusammenfassen. Jedes Projekt bekommt seine eigene Session, somit stelle ich einerseits sicher, dass der Index der Tabs bei jedem Projekt identisch sind (Neovim im Tab 1, Git im Tab 3, ... ). Andererseits wird so aus meiner Sicht dem Extraneous cognitive load entgegen gewirkt, da man nur die relevanten und bekannten Elemente einer anstehenden Tätigkeit geöffnet hat/angezeigt bekommt.

Das war mal ein kleiner Überblick über meinen IaC Workflow mit tmux. Anregungen und Fragen gerne bei mir adressieren. Unter Kontakt findet man genug Möglichkeiten, um ins Gespräch zu kommen!

Markdown Reader in Visual Studio Code

· 2 min read
Janno Tjarks
DevOps Engineer

Visual Studio Code besitzt einen built-in Markdown Reader, aufrufbar über die Command Palette

Visual Studio Code hat seit seinem ersten Release in 2015 eine unglaublich große Nutzerbasis akquiriert - sowohl bei allen Arten von Softwareentwicklern als auch SysAdmins und NetAdmins.
Gleichzeitig halfen DevOps Plattformen wie Github oder auch Static site generators, z.B. Hugo oder Jekyll, beim Durchbruch von Markdown zur de-facto Standardsyntax für Dokumentation aller Art.
Daher bietet Visual Studio Code auch bereits im Default ohne Extensions aus dem Marketplace nützlich Features zum Schreiben in Markdown.

Visual Studio Code besitzt einen built-in Markdown Reader, der aufrufbar ist über die Command Palette oder über die Tastenkürzel CTRL+Shift+V bzw. Ctrl+K V. CTRL+Shift+V öffnet ein neues Tab innerhalb von Visual Studio Code, während Ctrl+K V hingegen eine Side-by-side Anzeige öffnet.

Side by Side View in VS Code

Da ich selber neovim Nutzer bin, kann ich mir den Hinweis nicht ersparen, dass eine ähnliche Funktionalität in Neovim mit dem Plugin markdown-preview.nvim nachgerüstet werden kann.

Desweiteren kann ich für Visual Studio Code Nutzer auch das Plugin markdownlint empfehlen, welche auf das gleichnamige Open-Source Tool basiert. Markdownlint ist ein Style Checker, der den geschrieben Markdown Text anhand fester Regel überprüft und so beim Schreiben von syntaktisch sauberen Markdown unterstützt. Zu dem Thema Markdownlint wird sicherlich in Zukunft noch ein eigener Post erscheinen.

Tastenkürzel

ActionWindows/LinuxMacOS
Side-by-side ViewCtrl+K VCmd+K V
View in new TabCTRL+Shift+VCmd+Shift+V

Dieser Blog ist mit Markdown verfasst; genutzt wird das built-in Blog Plugin von Docusaurus