Home

Awesome

This is the distro neovim for fullstack development.

🚀 Performance for time startup: 24ms - 50ms(about 50 plugins)

Features

PluginDescription
lazyA plugin manager that loads plugins lazily to ensure fast startup times.
nvim-lspconfigSupport default lsp for (lua, python, web development, java, bash, c-c++ )
masonAutomatically installs LSP servers, formatters, linters, and debug adapters
conformFast formatter
nvim-cmpA lightweight completion plugin
witchMain theme
url-openGreat plugin to open the url under cursor
stcursorwordHighlight all words similar to the word under the cursor
buffer-closerAutomatic close unused buffers
nvim-treeA fast and lightweight file explorer
toggletermIncludes a terminal using toggleterm
gitsigns, git-conflictIntegrates Git functionality with gitsigns and git-conflict plugins for a seamless Git experience.
commentA plugin for easily generating comments.
dap, dapuiOffers debugging capabilities with dap and dapui plugins.
treesitterProvides syntax highlighting
autopairsAuto generate pairs
rainbow-delimitersBeautiful bracket highlighting
cccA color picker using ccc
sttuslineA very lightweight, super fast and lazyloading statusline plugin for neovim written in lua
telescopeProvides a file finder using telescope, a fuzzy finder plugin for files, buffers, and more.

And many more plugins that you can see in plugins/init.lua

<!-- | [bufferline](https://github.com/akinsho/bufferline.nvim) | Manages buffers with bufferline, a simple and configurable interface for buffer management | -->

Preview

preview1

preview2

How to add more key map

    ---@tparam table|string mode : Table mode used for applying the key map if only one mode you can use string
    ---@tparam string key : The key you wish to map.
    ---@tparam function|string map_to : The key or function to be executed by the keymap.
    ---@tparam table|number opts : Options to be applied in vim.keymap.set.
    --- - Default opts = 1.
    --- - opts = 1 for noremap and silent and nowait.
    --- - opts = 2 for not noremap and silent.
    --- - opts = 3 for noremap and not silent.
    --- - opts = 4 for not noremap and not silent.
    --- - opts = 5 for expr and noremap and silent.
    --- - opts = 6 for noremap and silent and wait.
    --- - opts = 7 for noremap and silent and nowait and expr.
    ---@tparam table extend_opts: Extension or overriding of opts if opts is a number.
    require("utils.mapper").map(mode, key, map_to, opts, extend_opts)

    --- Examples:
	require("utils.mapper").map({ "n", "v" }, "gx", "<esc>:URLOpenUnderCursor<cr>", { desc = "Open URL under cursor" })
	require("utils.mapper").map("n" }, "gx", "<esc>:URLOpenUnderCursor<cr>", 2, { desc = "Open URL under cursor" })

Install LSP, debugger

Requirements

Arch Linux:

sudo pacman -S xclip fd ripgrep
yay -S ttf-hack-nerd

Installation

Clone this repository into your Neovim configuration directory.

Linux and MacOS:

SSH method (recommended)

[ -d ~/.config/nvim ] && mv ~/.config/nvim ~/.config/nvim.bak ; git clone git@github.com:sontungexpt/stinvim.git ~/.config/nvim --depth 1
[ -d ~/.config/nvim ] && mv ~/.config/nvim ~/.config/nvim.bak ; git clone https://github.com/sontungexpt/stinvim.git ~/.config/nvim --depth 1

Windows (git bash)

[ -d %USERPROFILE%/Local/nvim ] && mv %USERPROFILE%\AppData\Local\nvim %USERPROFILE%\AppData\Local\nvim.bak ; git clone https://github.com/sontungexpt/stinvim.git %USERPROFILE%\AppData\Local\nvim --depth 1

You will also need to install the plugins. This configuration uses the lazy.nvim plugin manager to manage plugins. You can install the plugins by opening Neovim and running :Lazy sync

In this distro we enable two providers: nodejs and python so please install it or you can disable it in file ~/.config/nvim/lua/core/provider.lua

# for nodejs
npm install -g neovim

# for ruby
# gem install neovim

# for python
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install neovim
:Lazy sync

Inspiration

Configuration

This configuration is highly customizable and easy to configure.

Contributions

If you find any issues with this configuration or would like to contribute, please feel free to submit a pull request or open an issue.

License

This configuration is licensed under the MIT license - see the LICENSE file for details.