My personal development environment for Neovim
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
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.
I touch type using the right hand in combination with the index finger of the left hand, using a customized colemak-dh layout.
- Leader:
space
- Main plugins: akmini.visits_harpooned, mini.files, mini.pick, akmini.jump2d_leaped
- Menu: mini.clue
- Keyboard: Halcyon Ferris, a split keyboard with 34 keys
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
See this discussion
<c-w>hjkl
(stockNeovim
)mw
(next window)me
(last accessed window)
mk
("rolling fingers"), opening mini.files
- 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
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
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.
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.
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:
- Visits tweaked to operate like
grapple
orharpoon
. See internal plugin akmini.visits_harpooned - Augment pickers with labels and hotkeys. See internal plugin akmini.pick_hinted
- Pick bufferlines with treesitter highlighting.
- Apply tokyonight dev environment.
- Optimized jumping with jump2d.
- Beta testing mini.deps.
- MiniNotify replacing fidget.
- MiniCompletion using blink fuzzy algorithm.
- Jump with second character from each spot
tmux alacritty zsh scripts awesome arch linux
This repo uses code and ideas from the following repositories: