/oh-my-nvim

A theme-driven, out-of-the-box modern configuration of neovim (HardHackerNvim)💎

Primary LanguageLuaApache License 2.0Apache-2.0

HardHacker

oh-my-nvim

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.

📦 Features

  • 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
  • ...

🎆 Preview

📌 Requirements

  • Neovim 0.8+
  • Not required, but recommended

🚧 Install

MacOS/Linux

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

⌛️ Update

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.

🧱 Languages

Install LSP Server

Use command :LspInstall to download and install a server, e.g. :LspInstall rust_analyzer.

Install TreeSitter Parser

Use command :TSInstall to download and install a parser, e.g. :TSInstall rust.

🏠 Custom

🔍 Configuration structure

~/.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.

⌨️ Shortcut Keys

👉 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).

😍 Add the plugins you want

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'},
}

💯 Recommended plugins

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/

🧩 Plugins

👉 View all plugins integrated

Use lazy.nvim to manage plugins.