Skip to content

manwwe/ghost-nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ghost-nvim logo
Features โ€ข Install โ€ข Setup โ€ข Usage โ€ข Keybindings โ€ข Contribute โ€ข Structure


ghost-nvim is a modular Neovim configuration for a clean editing experience, modern UI, solid LSP tooling, and practical defaults. The refactor/v0.1 branch focuses on a cleaner architecture under lua/ghost, keeping the setup fast, maintainable, and ready for everyday development.

๐Ÿงช Version: refactor/v0.1 โ€“ preview branch for the v0.1 refactor. Layout, defaults, and documentation may still evolve.

โœ… Tested with: Neovim 0.11.6


ghost-nvim dashboard preview

ghost-nvim AI workflow preview

โœจ Features

ghost-nvim delivers a refactored, high-signal Neovim workflow with modern tools and a cleaner internal structure.

  • ๐Ÿค– Focused AI Workflows CopilotChat.nvim is integrated for quick buffer questions, visual explain/review/fix prompts, prompt selection, and model switching.

  • โšก Fast, Lazy-Loaded Setup Powered by lazy.nvim, with on-demand loading and a modular layout built for the v0.1 refactor.

  • ๐Ÿง  Modern LSP Tooling mason.nvim, nvim-lspconfig, conform.nvim, and nvim-lint provide language servers, format-on-save, and lint feedback with minimal setup.

  • ๐Ÿ” Practical Navigation telescope.nvim covers files, grep, buffers, diagnostics, and keymaps, while neo-tree.nvim provides a floating explorer for files, buffers, and Git status.

  • ๐ŸŽจ Modern UI Stack Includes alpha-nvim, lualine.nvim, bufferline.nvim, noice.nvim, and multiple bundled themes such as Catppuccin, Gruvbox, TokyoNight, Kanagawa, Vague, and Everforest.

  • ๐Ÿ› ๏ธ Full Daily Driver Toolkit Ships with terminals, Git tooling, diagnostics views, snippets, autopairs, code snapshots, and multicursor editing.

  • ๐Ÿงฉ Refactored by Feature Core config lives in lua/ghost/config, plugin specs are grouped by feature, and language-specific LSP settings are isolated under lsp/.


๐Ÿš€ Installation

Requires Neovim 0.11.6. Plugin management is handled via lazy.nvim.

๐Ÿ”ง Prerequisites

Install the following dependencies:

  • git
  • curl
  • tar
  • a C compiler
  • ripgrep
  • make for telescope-fzf-native.nvim
  • Nerd Font for icons

Optional but useful:

  • python3, lua, and bash for the file runner in toggleterm
  • an active GitHub Copilot subscription if you want to use CopilotChat.nvim

โš™๏ธ Setup

๐Ÿ“ฆ Step-by-Step

  1. Backup your current Neovim config if needed:

    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
  2. Clone the repo:

    git clone https://github.com/manwwe/ghost-nvim.git ~/.config/nvim
  3. Start Neovim:

    nvim
  4. Let lazy.nvim install the plugins.

  5. Run the following once:

    :Lazy sync
    :TSUpdate
    :Mason

โœ… You are ready to use ghost-nvim on the refactor/v0.1 branch.


๐Ÿงช Usage

๐Ÿ”Œ Plugin Management

  • Plugins are installed automatically on first launch.
  • Use :Lazy to inspect, sync, clean, and update plugin state.
  • Use :Mason to manage language servers, formatters, and linters.

Key Features & Plugins

๐Ÿค– AI Assistance

  • CopilotChat.nvim is available through a compact keymap set for toggling chat, selecting models and prompts, and asking questions about the current buffer.
  • Visual mode shortcuts are configured for explain, review, fix, optimize, docs, and tests.
  • The default model is configured as gpt-4.1.

โš™๏ธ Completion Engine (nvim-cmp)

  • Unified completion sources include LSP, snippets, paths, and buffer suggestions.
  • Snippet support is powered by LuaSnip and friendly-snippets.
  • Completion keeps <Tab> and <S-Tab> free while using Ctrl-based navigation and snippet jumps.

๐Ÿ” Telescope

  • Fuzzy finder mapped around <leader>f for files, grep, diagnostics, keymaps, and recent files.
  • Includes telescope-fzf-native.nvim when make is available.

๐Ÿง  LSP + Code Intelligence

  • LSP servers are managed through Mason and enabled with nvim-lspconfig.
  • Formatting runs on save through conform.nvim, with manual formatting on <leader>fm.
  • Linting runs on buffer enter, write, and insert leave through nvim-lint.
  • Default language tooling includes lua_ls, pyright, rust_analyzer, and ts_ls.

๐ŸŒˆ UI/UX

  • alpha-nvim provides the startup dashboard.
  • neo-tree.nvim handles files, buffers, and Git status in floating views.
  • noice.nvim and nvim-notify improve command-line, message, and notification handling.
  • bufferline.nvim and lualine.nvim provide buffer and statusline context.
  • Theme switching is built in, with <leader>ut opening the theme picker.

๐Ÿงฉ Tools

  • toggleterm.nvim provides a main terminal, floating terminal, vertical terminal, and a current-file runner for python, lua, and sh.
  • Git flows are covered by gitsigns.nvim and lazygit.nvim.
  • trouble.nvim, which-key.nvim, mini.surround, nvim-autopairs, codesnap.nvim, and multicursor.nvim round out the daily editing workflow.

๐ŸŽฎ Keybindings

Detailed keybindings are documented in KEYMAPS.md.

That file includes:

  • recent layout changes
  • general editor mappings
  • Telescope, LSP, Git, Terminal, Trouble, Copilot Chat, CodeSnap, and Multicursor shortcuts

๐Ÿค Contributing

Contributions should follow the refactored layout used by this branch and keep documentation aligned with behavior.

๐Ÿ’ก What You Can Improve

  • plugin behavior and editor UX
  • language tooling and defaults
  • UI consistency and theme integrations
  • documentation, examples, and keymap coverage

๐Ÿงช How to Contribute

  1. Fork the repo
  2. Create a branch
  3. Keep changes scoped and documented
  4. Update docs when behavior or mappings change
  5. Open a PR with a clear description

๐Ÿ“‚ Guidelines

  • Keep core settings in lua/ghost/config
  • Group plugins by feature under lua/ghost/plugins
  • Keep language-specific server config under lsp/
  • Prefer lazy-loaded plugins and small, focused modules
  • Update KEYMAPS.md when adding or changing user-facing mappings

๐Ÿ“ Project Structure

.
โ”œโ”€โ”€ init.lua
โ”œโ”€โ”€ KEYMAPS.md
โ”œโ”€โ”€ lsp
โ”‚   โ”œโ”€โ”€ lua_ls.lua
โ”‚   โ”œโ”€โ”€ pyright.lua
โ”‚   โ”œโ”€โ”€ rust_analyzer.lua
โ”‚   โ””โ”€โ”€ ts_ls.lua
โ”œโ”€โ”€ lua
โ”‚   โ””โ”€โ”€ ghost
โ”‚       โ”œโ”€โ”€ config
โ”‚       โ”‚   โ”œโ”€โ”€ autocmds.lua
โ”‚       โ”‚   โ”œโ”€โ”€ keymaps.lua
โ”‚       โ”‚   โ”œโ”€โ”€ lang_tools.lua
โ”‚       โ”‚   โ”œโ”€โ”€ lazy.lua
โ”‚       โ”‚   โ”œโ”€โ”€ options.lua
โ”‚       โ”‚   โ”œโ”€โ”€ theme.lua
โ”‚       โ”‚   โ””โ”€โ”€ treesitter.lua
โ”‚       โ”œโ”€โ”€ plugins
โ”‚       โ”‚   โ”œโ”€โ”€ alpha.lua
โ”‚       โ”‚   โ”œโ”€โ”€ bufferline.lua
โ”‚       โ”‚   โ”œโ”€โ”€ colorschemes.lua
โ”‚       โ”‚   โ”œโ”€โ”€ copilot-chat.lua
โ”‚       โ”‚   โ”œโ”€โ”€ gitsigns.lua
โ”‚       โ”‚   โ”œโ”€โ”€ indent-blankline.lua
โ”‚       โ”‚   โ”œโ”€โ”€ lsp
โ”‚       โ”‚   โ”‚   โ”œโ”€โ”€ completion.lua
โ”‚       โ”‚   โ”‚   โ”œโ”€โ”€ formatting.lua
โ”‚       โ”‚   โ”‚   โ”œโ”€โ”€ init.lua
โ”‚       โ”‚   โ”‚   โ””โ”€โ”€ linting.lua
โ”‚       โ”‚   โ”œโ”€โ”€ lualine.lua
โ”‚       โ”‚   โ”œโ”€โ”€ misc.lua
โ”‚       โ”‚   โ”œโ”€โ”€ multicursor.lua
โ”‚       โ”‚   โ”œโ”€โ”€ neo-tree.lua
โ”‚       โ”‚   โ”œโ”€โ”€ noice.lua
โ”‚       โ”‚   โ”œโ”€โ”€ telescope.lua
โ”‚       โ”‚   โ”œโ”€โ”€ toggleterm.lua
โ”‚       โ”‚   โ””โ”€โ”€ treesitter.lua
โ”‚       โ””โ”€โ”€ utils
โ”‚           โ”œโ”€โ”€ keymap.lua
โ”‚           โ””โ”€โ”€ ui.lua
โ””โ”€โ”€ README.md

Notes

  • nvim-treesitter is pinned to master for compatibility with Neovim 0.11.x.
  • CopilotChat.nvim is an optional integration and requires GitHub Copilot access.
  • The refactor branch intentionally favors small, focused modules over a monolithic config layout.

About

๐Ÿ‘ป ghost-nvim: an AI-powered, ultra-fast Neovim configuration built for productivity, modern tooling, and intelligent coding.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages