Collection of Neovim micro-plugins
See stuff.lua
Toggles boolean values (configurable key):
- true β false
- on β off
- enabled β disabled
- left β right
- top β bottom
- margin-left β margin-right
- etc...
Open links in a browser (or copy to clipboard when in an SSH session).
The reason I wrote this plugin is that I wanted to be able to open Jira ticket IDs and Github pull requests from my notes (or code comments) without writing the entire URL.
For example, pressing gx while standing on MYJIRAPROJ-1234 will open the
ticket in the browser.
Paste an image from the clipboard and add a markdown link to it.
| Mapping | Description |
|---|---|
<leader>ip |
Paste image from clipboard |
:PasteImage |
Same, as a command |
| Mapping | Description |
|---|---|
<leader>ga |
Git add file (patch) |
<leader>gu |
Git checkout file (patch) |
<leader>gw |
Write + stage current file |
<leader>gr |
Reset git changes (with confirmation) |
<leader>gy |
Yank current file's public URL |
<leader>go |
Open current file's public URL |
<leader>gd |
Git diff of current file |
| Mapping | Description |
|---|---|
<leader>jw |
Jump to weekly note |
<leader>jd |
Jump to daily note |
<leader>tt |
Toggle task done |
<leader>il |
Insert markdown link |
<leader>ii |
Insert markdown image |
<leader>id |
Insert date header |
<c-x>t (insert) |
Insert task checkbox - [ ] |
<c-x>m (insert) |
Insert markdown link |
Find and jump to related files (test, code, style) based on filename conventions. Supports TypeScript, Go, Python, and more.
| Mapping | Description |
|---|---|
<leader>jj |
Jump to related file (picker) |
<leader>jtt |
Jump to test file |
<leader>jtc |
Jump to code file |
<leader>jts |
Jump to style file |
See separate README for more details.
| Mapping | Description |
|---|---|
<leader>jo |
Jump between code and test file |
Add a shebang line and make the file executable.
| Mapping | Description |
|---|---|
<leader>sf |
Scriptify |
Insert a log line (console.log, put(), echo) with filename and line
context. Key is configurable.
| Mapping | Description |
|---|---|
<leader>yc |
Duplicate line/selection and comment it out |
| Mapping | Description |
|---|---|
<leader>yf |
Yank filename (with line numbers in visual) |
<leader>ym (visual) |
Yank as markdown |
<leader>yh (visual) |
Yank as HTML (from markdown) |
<leader>ya |
Yank entire file |
| Mapping | Description |
|---|---|
<leader>to |
Toggle .only on closest test |
<leader>ta |
Toggle async on closest function |
<leader>un |
Upgrade npm package version |
AI prompt manager for creating and managing prompts with file context.
| Mapping | Description |
|---|---|
<leader>pn |
New AI prompt (line context in normal, selection in visual) |
<leader>pq |
Quick AI prompt (line context in normal, selection in visual) |
<leader>pp |
Toggle AI prompt window |
<leader>ps |
Send current buffer/selection to tmux AI agent |
<leader>ph |
Select AI prompt from history(picker) |
<leader>r |
Send current prompt to tmux AI agent (inside prompt window) |
When an agent process has a generic command name (for example node), use
scripts/stuff-set-tmux-agent.sh to mark the tmux pane with @stuff_agent.
Example wrapper for cursor-agent:
#!/usr/bin/env bash
set -euo pipefail
exec /path/to/stuff.nvim/scripts/stuff-set-tmux-agent.sh --agent cursor-agent -- cursor-agent "$@"| Mapping | Description |
|---|---|
<leader>jp |
Preview Jira issue |
<leader>oj |
Open Jira issue |
Keymaps attached on LspAttach:
| Mapping | Description |
|---|---|
gd |
Go to definition |
K |
Hover |
<space>th |
Toggle inline hints |
<leader>co |
Organize imports |
| Mapping | Description |
|---|---|
<c-q> |
Toggle terminal |
<leader>cp |
Color picker |
<leader>cp requires colr to be installed.
| Mapping | Description |
|---|---|
<leader>df |
Delete current file |
| Mapping | Description |
|---|---|
<leader>wm |
Show messages in a floating window |
Treesitter-based folding with LSP fallback. No keymaps.
Quickfix window configuration. Press q to close.
| Mapping | Description |
|---|---|
<leader>cp |
Color picker |
Requires colr to be installed.
| Mapping | Description |
|---|---|
<space>h |
Toggle Hebrew mode (RTL) |