Skip to content

MuteSTEVE/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dr.MuteSTEVE Neovim config 📝

By Dr.MuteSTEVE

Intro

Hello there 👋 I'm an 18 years old digital minimalist and i love Neovim , GNU/Linux and UNIX in general ♥️
I use Neovim for everything from learn to code, learn a project and taking daily notes 🗒️
I have no intention to get into IT job 💼 i just love learning new things as hobby and life experience
My configuration is original and not based on any neovim distro for the sake of minimalist

UNIX Philosophy based configuation🐧

  • KISS (Less plugins = less breaking)
  • Minimalism (Simply the nature of UNIX application)
  • YAGNI (Use full-blown IDE, DON'T MAKE NEOVIM BLOATED)

You're probably soydev vscode spyware user called Microsoft windows 🪟 literally Nineteen Eighty-Four 👁️

Screenshot 📸

Structure ⛓️

Functions should do one thing. They should do it well. They should do it only
~ Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship

My configuration follow the clean code principle, that's why i break down everything into their own smaller respective module. Instead of traditional one big chunk of init.lua file

I use Lazy loading 💤 technic to load all the plugins, so it won't feel heavy as i jumped through different file because of the pluins trigger activation. You can find it online on how to lazy load neovim plugins with lazy.nvim or just read the docs of lazy.nvim or if you are suffered from tiktok brainrot that has tremendous little attention span you can do the following in your Lazy configuration:

-- lazy.lua ⚡
require("lazy").setup({
  spec = {
    -- It won't work if you have subdirectory, like lua/plug/something/
    -- Only works under one child directory of lua/
    { import = "lsp" }, 
    { import = "plug" },
  }
)
lua/
├─ core/ ──────────────────> All the core components ────────────────────────────────────┐
│  ├─ autocmd.lua ─────────> Handling action based on VIM trigger events                 │
│  ├─ icons.lua ───────────> Returning plugins icons when needed                         │
│  ├─ keymaps.lua ─────────> Custom keymaps                                              │
│  ├─ lazy.lua ────────────> Lazy.nvim package manager ──────────────┐                   │
│  └─ options.lua ─────────> Neovim Options                          │                   │
│                                                             Lazy loaded directory      │
├─ lsp/ ───────────────────> Lsp configuration ────────┐             │                   │
│  └─ *.lua                                            ├─────────────┤                   │
├─ plug/ ──────────────────> Plugins configuration ────┘             │                   │
│  └─ *.lua                                                 Return configuration table   │
│                                                                                        │
init.lua ──────────────────> Sourcing lua/core/ directory <──────────────────────────────┘

You can draw that cool TUI line too, find it here

Plugins 🧰

I only use the most bare minimum to get a perfect yet simple neovim configuration
There are however, the Honored plugins that are just so good that i can't live without

Honored Plugins that i can't live without

  • 📦 Mason.nvim Portable package manager for Neovim that runs everywhere Neovim runs.
    • Mason-lspconfig.nvim Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim Easily install and manage LSP servers, DAP servers, linters, and formatters
  • 🌏 Nvim-lspconfig quickstart configs for Nvim LSP
  • 📝 Nvim-cmp a completion plugin for neovim coded in Lua
    • Cmp-buffer nvim-cmp source for buffer words
    • Cmp-cmdline nvim-cmp source for vim's cmdline
    • Cmp-luasnip luasnip completion source for nvim-cmp
      • 📎 Luasnip snippet Engine for Neovim written in Lua
      • 📎 Friendly-snippets set of preconfigured snippets for different languages
    • Cmp-nvim-lsp nvim-cmp source for neovim's built-in language server client
    • Cmp-nvim-lua nvim-cmp source for neovim Lua API
    • Cmp-path nvim-cmp source for filesystem paths
  • 🔭 Telescope Find, Filter, Preview, Pick. All lua, all the time

Bonus 💥

Did you know that lazy.nvim has builtin float term API, yes you can actually use it for something like terminal or lazygit whatever your shell command is By utilizing require("lazy.util").float_term, you can make cool floating terminal to do all kind of things like:

  • ranger 📂 inside of neovim, eliminates the needs of file browser plugins
local map = vim.keymap.set
local float_term = require("lazy.util").float_term
map("n", "<leader>r", function()
    float_term("ranger")
  end)
  • lazygit 💤 to use git with floating UI window
local map = vim.keymap.set
local float_term = require("lazy.util").float_term
map("n", "<leader>g", function()
    float_term("lazygit")
  end)
map("n", "<leader>lg", function()
    float_term("lazygit")
  end)
map("n", "<leader>ll", function()
    float_term({ "lazygit", "log" })
  end)
local map = vim.keymap.set
local float_term = require("lazy.util").float_term
map("n", "<leader>m", function()
    float_term("ncmpcpp")
  end)
  • zsh shell 🐌 if i need to do simple things with floating shell
local map = vim.keymap.set
local float_term = require("lazy.util").float_term
map("n", "<leader>t", function()
    float_term("zsh")
  end)

Yes i indeed use picom to make a beautiful ✨ transparent window and tmux for terminal multiplexer

Outro

That's about it from me, thank you so much for visiting my lonley repo 🫠

Don't forget to give ⭐ to this repo

About

Dr.MuteSTEVE Neovim configuration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages