Modular Neovim configuration tailored for developers seeking a streamlined and efficient coding environment. Built with Lua, it leverages the power of lazy.nvim
for plugin management, offering a clean and extensible setup out of the box.(GitHub)
- 🔧 LSP and autocompletion
- 🧪 Testing with Neotest
- 🐞 Debugging with nvim-dap
- 🗂️ File navigation with Telescope
- 🧰 Terminal management with ToggleTerm
- 🛠️ Project tasks via Overseer
- 🌲 Floating file explorer using Oil.nvim
- 🎨 Theme switching with Themery
- 🔍 Search and Replace with grug-far
- 🚨 Diagnostics with Trouble
Ensure you have the following installed:
-
Backup Existing Neovim Configuration
If you have an existing Neovim configuration, back it up:
mv ~/.config/nvim ~/.config/nvim.backup mv ~/.local/share/nvim ~/.local/share/nvim.backup mv ~/.local/state/nvim ~/.local/state/nvim.backup mv ~/.cache/nvim ~/.cache/nvim.backup:contentReference[oaicite:39]{index=39}
-
Clone Repository
Clone therepository into your Neovim configuration directory:
git clone https://github.com/arxngr/pena.Vim ~/.config/nvim
-
Launch Neovim
Open Neovim to initiate the plugin installation process:
nvim
Upon first launch, lazy.nvim
will automatically install the necessary plugins. Wait for the process to complete.
-
Install LuaRocks (If Not Already Installed)
LuaRocks is essential for managing Lua dependencies. Follow the instructions below based on your operating system.
-
Install Lua
Use your package manager to install Lua 5.1 or LuaJIT:
-
Ubuntu/Debian:
sudo apt update sudo apt install lua5.1 liblua5.1-0-dev
-
Fedora:
sudo dnf install lua compat-lua-devel-5.1.5
-
macOS (using Homebrew):
brew install [email protected]
-
-
Download and Install LuaRocks
Download the latest LuaRocks version from the official site:
wget https://luarocks.org/releases/luarocks-3.11.1.tar.gz tar zxpf luarocks-3.11.1.tar.gz cd luarocks-3.11.1 ./configure && make && sudo make install
Verify the installation:
luarocks --version
-
Install Lua
Download and install Lua for Windows from LuaBinaries or use a package manager like Chocolatey or Scoop:
-
Using Chocolatey:
choco install lua
-
Using Scoop:
scoop install lua
-
-
Install LuaRocks
Download the LuaRocks Windows installer from the official site:
-
Extract the contents and run the
install.bat
script. For example:(ESOUI Code Collection, luarocks.org)install.bat /P C:\LuaRocks /L
Ensure that the installation path (e.g.,
C:\LuaRocks
) is added to your system'sPATH
environment variable.Alternatively, using package managers:
-
Using Chocolatey:
choco install luarocks
-
Using Scoop:
scoop install luarocks
After installation, verify:
luarocks --version
-
Once installed, pena.Vim provides a robust Neovim environment with sensible defaults and powerful plugins. Explore and customize the configuration to suit your workflow.
Default & Custom Setting By default, Vim uses \ (backslash) as the "leader" key, but most users redefine it to something easier to reach—commonly the spacebar for faster access:
Mode | Key | Description |
---|---|---|
n |
c |
Open config |
n |
<C-q> |
Quit file |
n |
<Tab> |
Next buffer |
n |
<S-Tab> |
Previous buffer |
v |
< / > |
Indent left/right |
n |
<C-c> |
Copy to system clipboard |
n/v |
<C-v> |
Paste from clipboard |
Mode | Key | Action |
---|---|---|
n |
<C-h/j/k/l> |
Move between windows |
t |
<C-h/j/k/l> |
Move between windows (terminal) |
t |
<C-x> |
Exit terminal mode |
Key | Description |
---|---|
<leader>ff |
Find files |
<leader>sb |
Search in current buffer |
<leader>sg |
Live grep |
<leader>ss |
Telescope built-ins |
<leader>sd |
Diagnostics |
<leader><leader> |
List open buffers |
Key | Description |
---|---|
<leader>tt |
Run current file |
<leader>tr |
Run nearest test |
<leader>tl |
Run last test |
<leader>ts |
Toggle summary |
<leader>to |
Show output |
<leader>tO |
Toggle output panel |
<leader>tS |
Stop tests |
<leader>tw |
Toggle watch mode |
Key | Description |
---|---|
<leader>da |
Start Debugging |
<leader>dc |
Continue |
<leader>db |
Toggle breakpoint |
<leader>dq |
Clear breakpoints |
<leader>do |
Step over |
<leader>dO |
Step out |
<leader>dr |
Toggle REPL |
<leader>dv |
View scopes |
<leader>dw |
Hover variable |
<leader>ds |
View stacks |
<leader>dlb |
View breakpoints float |
<leader>dh |
View watches |
<leader>td |
Debug nearest (Neotest) |
Key | Description |
---|---|
gd |
Goto definition |
gr |
References |
gI |
Implementations |
gt |
Type definitions |
<leader>rn |
Rename symbol |
<leader>ca |
Code actions |
Key | Description |
---|---|
<leader>ft |
Toggle floating terminal |
<leader>wv |
Vertical split |
<leader>hv |
Horizontal split |
<leader>e |
Toggle Oil file explorer |
<leader>ut |
Toggle transparency |
<leader>gg |
LazyGit |
Key | Description |
---|---|
<leader>xx |
Toggle diagnostics |
<leader>xX |
Buffer diagnostics |
<leader>cs |
Toggle symbols |
<leader>cS |
LSP references/defs |
<leader>xL |
Location list |
<leader>xQ |
Quickfix list |
[q / ]q |
Prev/next quickfix or Trouble |
Key | Description |
---|---|
<leader>ow |
Toggle task list |
<leader>oo |
Run task |
<leader>oq |
Quick action on recent task |
<leader>oi |
View task info |
<leader>ob |
Open task builder |
<leader>ot |
Task action menu |
<leader>oc |
Clear task cache |
This project is licensed under the MIT License.