Awesome Open Source
Awesome Open Source




  • An IDE layer for Neovim with beautiful, flexible, extensible and completely free and open source lua-based configurations for Unix-based systems.

  • DomacsVim is a configuration framework for NeoVim, written in lua, which aims to provide a convenient coding environment and meet most of the needs of a programmer or coder.

  • Lazy loading is done 90% of the time, meaning plugins are not loaded by default, only when needed. You can enable or disable the desired plugin with just one command line. Plugins that are disabled do not slow down the coding process and are not installed.

  • The fact that DomacsVim is a configuration framework doesn't mean you can't customize it to your liking, but you can install new plugins, customize default plugins, add new shortcuts, and more. Almost all the code is written in an extensible way and you can rewrite it according to your taste.

  • The path where user customization files are placed is ‍‍~/.config/dvim which is created by default at runtime. You can create config.lua file and enter your desired customizations in it. By entering the command nvim, NeoVim will open for you. But to access DomacsVim enter dvim command.


Before you start the installation process, make sure that these packages are installed on your system :

  • Git
  • Neovim (version 8+)
  • lua , luajit
  • python (verions 3+) , python-pip (version 22+)
  • npm , nodejs , yarn
  • ripgrep

When you are sure that the prerequisites are installed, start the installation process by running a command line.

bash <(curl -s

you can start the installation process by writing a command line. You will be asked several questions to install the desired packages. and if needed (the package in question is not pre-installed on your system) you answer with ( y ) and otherwise (if the package in question is pre-installed on your system) with ( n ) you answer and that's it.


As mentioned, The path where user customization files are placed is ‍‍~/.config/dvim which is created by default at runtime. You can see a simple example of personalization below.

-- set colorschemes (themes)
dvim.colorscheme = 'onedark'
dvim.builtin.themer = {
  style = 'darker'
-- set leaderkey
dvim.leader = ' '
-- set new keybindings
-- normal mode
dvim.keys.normal_mode["<C-s>"] = '<cmd>:w<cr>'
-- insert mode
dvim.keys.insert_mode["<C-t>"] = '<cmd>:>><cr>'
-- visual mode
dvim.keys.visual_mode["<Tab>"] = '>>'
dvim.keys.visual_block_mode["<Tab>"] = '>>'
-- command mode
dvim.keys.command_mode["<C-p>"] = ':Telescope'
-- configure builtin plugins = true = true = true
-- configure treesitter
dvim.builtin.treesitter.ensure_installed = "all"
dvim.builtin.treesitter.ignore_install = { "haskell" }
-- lspconfig
dvim.lsp.update_in_insert = false
-- extensions
dvim.extensions = {
  -- add extension with this template
  -- {
  --   'url',
  --   config = function() end,
  --   disable = dvim.[].active,
  --   etc ...
  -- }


If you are interested in fixing issues and contributing directly to the code base, please see the document

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Lua (38,387
Vim (18,814
Dotfiles (11,268
Vscode (10,574
Ide (9,228
Neovim (4,781
Vimrc (2,276
Nvim (1,800
Ricing (187
Neovim Configuration (166
Neovim Lua (143
Telescope (137
Neovim Config (131
Nvim Configs (55
Nvimrc (49
Nvim Config (16