A theme-driven, out-of-the-box modern configuration of neovim 💎
We developed a theme called HardHacker, which we thought was pretty and eye friendly, but we found that many neovim plugins have their own color scheme, so we made a neovim integration environment that matches the hardhacker theme.
- Session load and switch
- File explorer
- File find and search
- Terminal
- LSP
- Pretty Code highlighting, Colors highlighting
- Auto completion
- Languages
- Git integration
- Git diff view
- Pretty Tabline, Statusline, Winbar, Outline
- Starting screen
- Quick resize the window
- Zen mode
- Markdown Preview via your browser
- ...
- Neovim 0.8+
- Not required, but recommended
0️⃣ Backup your current nvim
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
1️⃣ Clone oh-my-nvim repo
git clone https://github.com/cnsky1103/oh-my-nvim.git ~/.config/nvim
2️⃣ Start nvim
in your terminal, then automatically install and setup all plugins
3️⃣ Restart nvim
and enjoy it 🍻
4️⃣ Keep updated
You should keep updated, it's great.
You can use git pull
to update it. If you've edited something, you may need to merge the content manually, just like a normal git operation.
Use command :LspInstall
to download and install a server, e.g. :LspInstall rust_analyzer
.
Use command :TSInstall
to download and install a parser, e.g. :TSInstall rust
.
~/.config/nvim/
├── init.lua
├── lazy-lock.json
└── lua/
├── plugins/
│ └── ...
├── languages/
│ └── ...
├── my_plugins/
│ └── ...
├── basic.lua
├── custom.lua
├── custom_keys.lua
├── custom_opts.lua
└── settings.lua
-
~/.config/nvim/lua/my_plugins/
You can put the plugins you want into the directory.
-
~/.config/nvim/lua/custom.lua
This file does not exist by default, you can create this file, then place some custom configuration logic, the custom.lua module will be loaded last.
👉 View the default shortcut settings
You can edit the default settings of the shortcut keys in this configuration file (~/.config/nvim/lua/custom_keys.lua
).
If you want to add your own plugins, you can create a plugin_name.lua
file in the directory ~/.config/nvim/lua/my_plugins
. Setup the plugins in this file.
The plugin configuration in the plugin_name.lua
file refers to the following template (lazy.nvim syntax):
return {
-- Your Plugin1
{
'hardhacker/plugin1',
config = function() ... end
},
-- Your Plugin2
{'hardhacker/plugin2'},
}
Some useful plugins are configured by default in the directory ~/.config/nvim/misc/recommended
,
but they are not loaded into neovim by default ,
so if you need them, you can copy them into the directory ~/.config/nvim/lua/my_plugins/
.
Example:
cp ~/.config/nvim/misc/recommended/markdown.lua ~/.config/nvim/lua/my_plugins/
Use lazy.nvim to manage plugins.