Skip to content

hardhackerlabs/oh-my-nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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