# KickestEnd.nvim ## Neovim Custom Keymaps A collection of custom keymaps and configurations for Neovim aimed at improved buffer handling, window management and clipboard management. These keymaps are written in Lua for Neovim ≥0.7 and include enhanced smart buffer/file handling and more. --- ## Features ### Navigation - Smooth scrolling with centered cursor: `j` / `k` - Enhanced search: `n` / `N` keeps cursor centered - Move lines visually: `J` / `K` in visual mode - Switch between splits quickly: `` / `` ### Buffer Management - Smart buffer switch using Telescope: `` - Better buffer handling with Neotree and Telescope pickers: - Open files in new tabs by default. - Open file in split mode by pressing `h` or `v` on the file. - Create new empty buffers in splits or tabs: - Horizontal: `sv` - Vertical: `sh` - New tab: `e` - Better visual editor like saving: - `w` — Save current buffer (prompts if new) - `W` — Save As (prompts if new) - Better safe closing: - `qy` — Save and quit - `qn` — Quit without saving ### Clipboard & Copying - Copy current line: `Y` (normal mode) - Copy selection: `Y` (visual mode, trims extra newlines) - Select all and copy: `lY` (entire buffer without trailing newline) - Paste from clipboard: `P` (at cursor, or over selection without yanking it) - Paste over selection without yanking replaced text: `p` ### Pastebin - Use :Pastebin command to upload the filetext to a server and get a URL to it (check lua/pastebin.lua) ### Diagnostics - `[d` / `]d` — Navigate diagnostics - `de` — Open diagnostic floating window - `dq` — Set location list for diagnostics --- ## Keymaps Overview ### Normal Mode Keymaps | Key | Action | Description | | ------------------ | ------------------- | ---------------------------------------------------------------- | | `J` | Join line | Join current line with next without moving cursor | | `j` | Scroll down | `` + center cursor | | `k` | Scroll up | `` + center cursor | | `n` / `N` | Search | Keep cursor centered on matches | | `Y` | Copy line | Copy current line to system clipboard | | `lY` | Copy all | Select entire buffer and copy to clipboard (no trailing newline) | | `w` | Save | Save current buffer (prompts if new) | | `q` | Quit | Close buffer (prompts if modified) | | `qy` | Save & quit | Save and close buffer | | `qn` | Quit without saving | Discard changes and close buffer | | `` | Smart buffer switch | Open Telescope buffer switcher | | `gf` | Smart file open | Open file under cursor in current/new tab | ### Visual Mode Keymaps | Key | Action | Description | | ----------- | -------------- | --------------------------------------------------------- | | `J` / `K` | Move selection | Move selected lines up or down | | `Y` | Copy selection | Copy selected text to system clipboard (no extra newline) | | `p` | Paste | Paste over selection without yanking replaced text | | `P` | Paste | Paste from clipboard without replacing selection | ### Split/Window Management | Key | Action | Description | | --------------- | ---------------- | ------------------------------ | | `sv` | Horizontal split | New empty buffer below current | | `sh` | Vertical split | New empty buffer to the right | | `t` | New terminal | Open terminal in new tab | | `` | Switch splits | Switch to next window | | `` | Switch splits | Switch to previous window | ### Diagnostics Keymaps | Key | Action | Description | | ------------ | ------------- | ------------------------------------------ | | `[d` / `]d` | Previous/Next | Go to previous/next diagnostic | | `de` | Float | Show diagnostic message in floating window | | `dq` | Location list | Set location list for diagnostics | --- ## Contributing Contributions, bug reports, and suggestions are welcome. Please open an issue or submit a pull request if you have improvements for keymaps, new features, or optimizations. ## License MIT License — feel free to use and modify these keymaps in your own Neovim setup.