Skip to content

octocron/megavim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

174 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👊 Thank You!!

🌆 Preview



📖 Resources

RTFM
NüschtOS
NVIM Options

🔌 Features

AI: Choose from Code Companion or Opencode (default:only works on darwin). These will hook into most models.
Thank you Windsurf for tab completion and inline edits. (unlimited)
Hardtime: For forcing you to learn vim, and get hint of better ways.
Precognition: For vim suggestions if you are learning vim motions.
Glow: To toggle markdown preview.
LazyGit: For easy git management.
Linting, formatting, syntax highlighting, etc...for most languages.
Keep context for deeply nested code.

A Nix version of Neovim.
Nixvim input is locked to prevent breaking changes but updated every few months.

💡 Why Nix over Lua?

Nix offers declarative, reproducible Neovim configurations. Unlike Lua scripts, Nix ensures consistent setups across machines, automatic dependency management, and version pinning to prevent breakage. It's ideal for users who value reliability and easy config sharing.

🐰 Quick Start

To make your own changes to customize to YOUR needs:

  • Fork the repo
  • Clone the fork
  • Make your changes ( comment out/in plugins, change colorscheme, keybindings, etc. )
  • add your fork to your inputs in your own flake.nix
  • or use stand alone with a nix run git{hub|lab}:username/branch of your fork

🕹️ Commands

Just to list to make you aware of them.
For the bufferline tabs use alt+h | alt+l to toggle between tabs.
Open a file into a vertical split use ctrl+v.
These commands are also used with spacebar menu list.

:h holy-grail                   # see everything vim can do
:Telescope keymaps              # search set keymaps

🔩 How to Run

If nix is installed on your system you can try megavim from either gitlab or github:

nix run gitlab:megacron/megavim

nix run github:octocron/megavim

💾 Direct Install

You can also plug this into a flake to include it into a system configuration.
If you fork, follow the same instructions but replace the url to your fork.
Make sure that neovim is UNINSTALLED!! Otherwise megavim cannot set itself as default!

# flake.nix use with ref to ensure it pulls from the correct branch with latest.
{
  inputs = {
    megavim.url = "gitlab:megacron/megavim?ref=nixvim";
  };
}
# configuration.nix // choose either NixOS or home-manager
{ inputs, system, ... }:
{
  # NixOS
  environment.systemPackages = [ inputs.megavim.packages.${pkgs.system}.default ];
  # home-manager
  home.packages = [ inputs.megavim.packages.${pkgs.system}.default ];
}

When installed this way there may come a time you want to update megavim without
updating the whole system (flake). We can pick a single input this way:

# Check for and update only megavim
nix flake lock --update-input megavim

# if the lock file update just do a rebuild
sudo nixos-rebuild switch --flake ~/some/path/

📌 Overlay

This input can then be used as an overlay to replace the default neovim.
This means that we DO install neovim, then overlay it.

{ megavim, ... }:
{
  overlays = (final: prev: {
    neovim = megavim.packages.${prev.system}.default;
  });
}

🔮 In devShell

devShells.default = nixpkgs.mkShell {
  nativeBuildInputs = [ megavim.packages.${pkgs.system}.default ];
};

You can find more information on building your own flake
here.

About

Contains a branch for a build in both lua and nix.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages