Skip to content

Latest commit

 

History

261 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeVim

A fast, extensible Neovim configuration with a custom UI, sensible defaults, built-in LSP support, and a user layer that stays separate from the core.

GitHub top language Last Commit GitHub code size GitHub stars

TeVim dashboard

Features

  • Fast startup with lazy-loaded plugins.
  • Custom dashboard, statusline, bufferline, and theme system.
  • LSP support powered by Neovim's native LSP client, nvim-lspconfig, and Mason.
  • Completion, snippets, Treesitter highlighting, Git integration, Telescope, and Neo-tree.
  • A separate lua/custom/ layer for personal configuration.
  • 16 bundled colorschemes with support for user-created themes.

On the author's machine, a headless startup typically takes approximately 14–20 ms. Startup time depends on hardware, operating system, and enabled custom plugins.

Theme showcase — 16 colorschemes
TeVim theme 1 TeVim theme 2 TeVim theme 3 TeVim theme 4
TeVim theme 5 TeVim theme 6 TeVim theme 7 TeVim theme 8
TeVim theme 9 TeVim theme 10 TeVim theme 11 TeVim theme 12
TeVim theme 13 TeVim theme 14 TeVim theme 15 TeVim theme 16

Requirements

  • Neovim 0.11.3 or newer. Neovim 0.12 is recommended.
  • Git, curl, ripgrep, and a C compiler.
  • A Nerd Font configured in your terminal.
  • A clipboard provider: wl-clipboard on Wayland, or xclip/xsel on X11.
  • Optional: lazygit and ranger.

Some Treesitter parsers and native Telescope extensions require a working compiler. Windows users can use LLVM/Clang or MinGW and must add it to PATH.

Installation

Back up your existing configuration first.

Linux and macOS

mv ~/.config/nvim ~/.config/nvim.bak
git clone --depth 1 https://github.com/sownteedev/TeVim ~/.config/nvim
nvim

Windows PowerShell

Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak
git clone --depth 1 https://github.com/sownteedev/TeVim $env:LOCALAPPDATA\nvim
nvim

TeVim installs plugins on the first launch and creates lua/custom/ automatically. Restart Neovim after the initial installation finishes.

Core and custom configuration

TeVim separates maintained defaults from user configuration:

lua/
├── tevim/       # TeVim core: UI, defaults, and bundled plugins
└── custom/      # Your plugins, options, keymaps, LSP servers, and themes

Do not edit lua/tevim/ for personal changes. Files in lua/custom/ are loaded after the core and can extend or override it without creating conflicts when TeVim is updated.

Add a plugin

Add a Lazy plugin specification to lua/custom/plugins.lua:

return {
	{
		"stevearc/conform.nvim",
		event = "BufWritePre",
		opts = {},
	},
}

You can also add another specification with the same repository name to override a bundled plugin.

Change an option

Add your changes to lua/custom/options.lua:

vim.opt.relativenumber = true
vim.opt.wrap = false
vim.g.transparency = true

Add a keymap

Add keymaps to lua/custom/keymaps.lua:

vim.keymap.set("n", "<leader>e", "<cmd>Neotree toggle<cr>", {
	desc = "Toggle file explorer",
	silent = true,
})

Add LSP servers and Mason packages

List packages managed by :TeVimCheckMason in lua/custom/configs/overrides.lua:

local M = {}

M.mason = {
	ensure_installed = {
		"typescript-language-server",
		"eslint-lsp",
		"prettier",
	},
}

return M

Create lua/custom/configs/lspconfig.lua:

local base = require("tevim.plugins.configs.lspconfig")
local servers = { "ts_ls", "eslint" }

for _, server in ipairs(servers) do
	vim.lsp.config(server, {
		on_attach = base.on_attach,
		capabilities = base.capabilities,
	})
end

vim.lsp.enable(servers)

Then extend the bundled LSP plugin in lua/custom/plugins.lua:

return {
	{
		"neovim/nvim-lspconfig",
		config = function()
			require("tevim.plugins.configs.lspconfig")
			require("custom.configs.lspconfig")
		end,
	},
}

Run :TeVimCheckMason after changing the package list.

Add a colorscheme

Copy one of the palette files from lua/tevim/themes/schemes/ to lua/custom/themes/schemes/mytheme.lua, change its colors, and select it in lua/custom/options.lua:

vim.g.TeVimTheme = "mytheme"

Custom highlight overrides belong in lua/custom/themes/integrations.lua.

Commands

Command Description
:TeVimThemes Open the colorscheme picker
:TeVimToggleTrans Toggle background transparency
:TeVimCheckMason Synchronize packages listed in custom/configs/overrides.lua
:TeVimUpdate Update TeVim
:Mason Open the Mason package manager
:Lazy Open the Lazy plugin manager

Keymaps

The leader key is Space. Use :Telescope keymaps to browse the complete list.

Key Action
Ctrl+E Toggle Neo-tree
Ctrl+` Toggle the terminal
Ctrl+S Save the current file
Ctrl+/ Toggle comments
Leader f f Find files
Leader f w Search text
Leader l a LSP code action
Leader l r LSP rename
Leader l I LSP information
Leader s i Treesitter module information
Leader s u Update Treesitter parsers
Leader Leader c Open the theme picker
Leader Leader m Synchronize Mason packages

Main plugins

Plugin Purpose
lazy.nvim Plugin manager and lazy-loading
nvim-treesitter Parsers, queries, and syntax highlighting
nvim-lspconfig LSP server configurations
mason.nvim External development-tool manager
nvim-cmp Completion engine
LuaSnip Snippet engine
Telescope Fuzzy finder and picker interface
Neo-tree File explorer
Gitsigns Git changes and hunk actions
ToggleTerm Terminal integration
which-key.nvim Keymap discovery

Troubleshooting

  • Run :checkhealth to inspect Neovim, LSP, Treesitter, and provider health.
  • Run :Lazy sync if a plugin is missing or out of date.
  • Run :Mason to inspect external tools.
  • Run :LspInfo after opening a source file to inspect attached LSP clients.
  • When reporting an issue, include your Neovim version and relevant :checkhealth output.

TeVim is an opinionated configuration intended for users who are comfortable with Lua and Neovim. If you encounter a problem, please open an issue.

Credits
  • NvChad inspired parts of TeDash and TeBufline.

About

Neovim configuration for Developer. Minimal UI, optimize timestartup.

Topics

Resources

Stars

158 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages