Skip to content

abeldekat/nvim_pde

Repository files navigation

Neovim pde

1724703495

1724703946

My personal development environment for Neovim

Older versions

Note

Tag with_submodules references the version containing git submodules, lazy.nvim and mini.deps

Tag with_lazynvim references the version containing lazy.nvim and mini.deps

Install

Requirements: Neovim latest version or nightly.

Always review the code before trying a configuration.

Clone the repository:

git clone https://github.com/abeldekat/nvim_pde ~/.config/ak

Open Neovim with this config, installing the plugins:

NVIM_APPNAME=ak nvim

Remove the config:

rm -rf ~/.local/share/ak ~/.local/state/ak ~/.cache/ak
rm -rf ~/.config/ak

Notes: For peek.nvim, deno needs to be installed. For tree-sitter, the CLI must be installed.

Workflow

I touch type using the right hand in combination with the index finger of the left hand, using a customized colemak-dh layout.

VisitsHarpooned

Internal plugin akmini.visits_harpooned is a customized mini.visits configuration, operating in almost the same way as harpoon.

  • Info in statusline: akmini.harpoonline
  • Pick visits from current label: <leader>n ("strong finger")
  • Pick visits from all labels: <leader>on
  • Toggle label on visit: <leader>a
  • Switch label: <leader>ol
  • Add new label: <leader>oa
  • Maintain visits having label: <leader>om
  • Clear all visits: <leader>or

Pickers can display hints using internal plugin akmini.pick_hinted

Jump2d like leap

See this discussion

Window navigation

  • <c-w>hjkl (stock Neovim)
  • mw(next window)
  • me(last accessed window)

Explorer

  • mk("rolling fingers"), opening mini.files

Tmux

  • tmux-sessionizer inspired by @ThePrimeagen
  • workspaces at the top of the screen, using tmuxp
  • leader: ctrl space
  • navigation:
    • tmux-sessionizer: leader h
    • previous session: leader j
    • previous window: leader l
    • existing sessions: leader k
    • switch pane: leader o

UI

  • mini.statusline, no colors, except on:
    • mode change
    • diagnostics
    • current buffer has current label (mini.visits)
    • macro recording
  • many color schemes

Change color schemes:

  • on each startup, see scripts, vim_menu_owns
  • mini.pick, leader f o c, loads all colors, does not show builtin color schemes
  • change the palette of the current color scheme using leader h

Script vim_menu_owns writes to lua.ak.colors. Ignoring changes to that file:

git update-index --assume-unchanged lua/ak/colors.lua

Key conflicts

operators

In my config, the suggested key gr("go replace") in mini.operators is already used for the lsp("go references").

I prefer "two character hotkeys" as I use some lsp keys quite often(gd, gr).

Solution: Change operator gr into gs, mnemonic for "go substitute".

As a consequence, use gS instead of suggested key gs("go sort") for sort.

surround

Using mini.surround. Suggested keys: sa sd sr sf sF sh sn

The "s" is already used by akmini.jump2d_leaped. Solution: Use the m key in combination with asdf, adjacent keys on a qwerty keyboard. Key ms is a mnemonic for surround substitute, performing a surround replace.

Mini

Many of the excellent modules included in mini.nvim are used in this config:

ai, align, animate, base16, basics, bracketed, clue, completion, cursorword, deps, diff, extra, files, git, hipatterns, hue, icons, indentscope, jump2d, keymap, misc, move, notify, operators, pairs, pick, snippets, splitjoin, starter, statusline, surround, visits

Relevant discussions:

Environment

tmux alacritty zsh scripts awesome arch linux

Acknowledgements

This repo uses code and ideas from the following repositories:

About

My personal development environment for Neovim

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages