Files
Morten Olsen b3b70bceeb Improved flow
2026-01-26 23:04:14 +01:00
..
2026-01-26 23:04:14 +01:00
2026-01-26 23:04:14 +01:00
2026-01-26 23:04:14 +01:00

Neovim Workflow Documentation

This documentation covers workflows and keybindings for this LazyVim-based Neovim configuration, optimized for TypeScript, Python, and Go development.

Quick Start

  1. Leader key: <Space>
  2. Find files: <leader>ff or <leader><space>
  3. Find text: <leader>sg (grep) or <leader>/ (in buffer)
  4. File explorer: <leader>e
  5. Which-key help: Press <leader> and wait

Cheatsheets (Quick Reference)

Cheatsheet Description
Keybindings Complete keybinding reference by category
Git Workflow Git operations, diffs, PRs, and blame
Testing Running and debugging tests
Database Database connections and queries

Detailed Guides

Guide Description
TypeScript Workflow Complete TypeScript/JavaScript development guide
Python Workflow Python development with venv, testing, debugging
Go Workflow Go development guide
Git Workflow Detailed git operations and PR review workflow
Debugging DAP debugging for all languages
Snippets Creating custom code snippets
AI Assistant Using opencode.nvim for AI-assisted coding

Key Binding Prefixes

Prefix Purpose Examples
<leader>f Find/Files Find files, recent files
<leader>s Search Search text, symbols, help
<leader>g Git Git status, diffs, PRs
<leader>c Code LSP actions, format, rename
<leader>t Test Run tests, debug tests
<leader>d Debug DAP debugging
<leader>D Database DBUI, connections
<leader>R REST HTTP requests
<leader>k AI (opencode) AI assistance
<leader>h Harpoon Quick file navigation
<leader>q Session Save/restore sessions
<leader>1-9 Harpoon files Jump to marked files

Configuration Files

File Purpose
lua/config/options.lua Neovim settings
lua/config/keymaps.lua Global keymaps
lua/plugins/*.lua Plugin configurations
snippets/*.lua Custom code snippets

Plugin Overview

Core Plugins

  • LazyVim: Base distribution with sensible defaults
  • Telescope: Fuzzy finder for files, text, symbols
  • Treesitter: Syntax highlighting and text objects
  • LSP: Language server protocol for IDE features

Language Support

  • TypeScript: Full LSP, ESLint, Vitest integration
  • Python: LSP, venv-selector, pytest, DAP
  • Go: gopls, golangci-lint, go test, DAP

Productivity

  • Harpoon: Quick file switching (marks up to 9 files)
  • Flash.nvim: Fast navigation with search labels
  • Persistence: Session management
  • Trouble: Diagnostics list

Git

  • Diffview: Side-by-side diffs and file history
  • Git-blame: Inline blame annotations
  • Octo: GitHub PRs and issues in Neovim
  • Gitsigns: Git gutter signs

Other

  • Neotest: Test runner for all languages
  • DAP: Debug adapter protocol
  • Dadbod: Database client
  • Kulala: REST client
  • Opencode: AI assistant

Getting Help

  • Press <leader> and wait for which-key popup
  • :Telescope keymaps - Search all keybindings
  • :Telescope help_tags - Search help documentation
  • :checkhealth - Check for configuration issues
  • :Lazy - Manage plugins