Skip to content

ilias777/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Neovim Configuration

Features β€’ Requirements β€’ Installation β€’ Folder structure β€’ Configuration β€’ Plugins β€’ Wiki

🌟 Preview

startup
Find files with Telescope
p1
Show keybindings with which-key
p2
File browser with Telescope
p3
Find help with Telescope
help
Neo-tree file browser
p4
Neo-tree floating file browser
p5
Lazy.nvim
p6
Mason.nvim
p7
Autocompletion with nvim-cmp
p8

✨ Features

⚑️ Requirements

πŸ› οΈ Installation

Linux / macOS

Make a backup of your current nvim and shared folder

mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak

Go to your .config folder

cd ~/.config

Clone the Repository

git clone https://github.com/ilias777/nvim.git

Remove .git folder and add your own repo if you want

rm -rf ~/.config/nvim/.git

Navigate to nvim folder and open init.lua with Neovim

cd nvim
nvim init.lua

πŸ“ Folder and File Structure

~/.config/nvim
β”‚
β”œβ”€β”€ lua                                  # LUA FOLDER
β”‚Β Β  β”œβ”€β”€ core
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ autocommands.lua             # File to store all the autocommands
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ usercommands.lua             # File to store all the usercommands
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ keymaps.lua                  # Keybindings
β”‚Β Β  β”‚Β Β  └── options.lua                  # All Neovim options
β”‚Β Β  └── plugins
β”‚       β”œβ”€β”€ lsp                          # LSP RELATED PLUGINS FOLDER
β”‚       β”‚   β”œβ”€β”€ lsp-config.lua           # nvim-lspconfig
β”‚       β”‚   └── other-lsp-plugins.lua    # Other lsp related plugins
β”‚       β”œβ”€β”€ init.lua                     # Many plugins in one file
β”‚Β Β      β”œβ”€β”€ plugin_1.lua                 # One or more plugins in one file
β”‚       β”œβ”€β”€ plugin_2.lua                 # One or more plugins in one file
β”‚Β Β      β”œβ”€β”€ **
β”‚Β Β      └── plugin_xx.lua
β”œβ”€β”€ snippets
β”‚   β”œβ”€β”€ javaspript.lua                   # JavaScript snippets
β”‚   └── lua.lua                          # Lua snippets
β”œβ”€β”€ ftplugin
β”‚   └── java.lua                         # Java configuration
└── init.lua                             # Main file

Understanding the file tree β†’ look here

βš™ Configuration

How to configure Neovim is explained in the Wiki

Plugins

  • How to install or uninstall plugins β†’ look here

Language server

  • How to setup a language server β†’ look here

Keymaps

  • How to setup or change keymaps β†’ look here

See all keymaps

  • Keymaps are listet β†’ here

πŸ”Œ Plugins

  • Over 90 Plugins preinstalled
  • Startuptime ~40ms - ~59ms
  • Testet on MacOS 14.5 - M1 Pro
startuptime

Plugins List

Package Manager

File Explorer

  • neo-tree - Manage and browse the file system.

Plugins for LSP

  • nvim-lspconfig - Configurations for the LSP client.
  • mason - Install and manage LSP servers.
  • mason-lspconfig - Bridge between mason and lsp-ocnfig.
  • trouble.nvim - A pretty diagnostics, references, telescope results, quickfix and location list.
  • glance.nvim - A pretty window for previewing, navigating and editing your LSP locations.
  • inc-rename.nvim - Incremental LSP rename command.
  • outline.nvim - Code outline sidebar powered by LSP.
  • nvim-jdtls - Extensions for the built-in LSP support for eclipse.jdt.ls.

Autocompletion

Formatter

  • conform.nvim - Lightweight yet powerful formatter plugin for Neovim.

Linter

  • nvim-lint - An asynchronous linter plugin for Neovim.

Colorscheme

Snippet Engine

Tabline and Statusline

Motion

Git integration

  • advanced-git-search - Search your git history by commit message, content and author with Telescope.
  • diffview.nvim - Interface for easily cycling through diffs.
  • gitsigns - Git integration: signs, hunk actions, blame, etc.
  • neogit - A Magit clone for Neovim

Utils

Treesitter

Telescope

Comments

Degub Adapter Protocol

Writing

  • vimtex - A modern Vim and Neovim filetype and syntax plugin for LaTeX files.
  • markdown-preview - Preview markdown on your browser.
  • typst.vim - Vim plugin for Typst.

Preinstalled Language Servers

Language Server Description Programming Language
cssls Language services for CSS, LESS and SCSS CSS
emmet_ls Emmet support based on LSP HMLT - CSS
html Language services for HTML HTML
jsonls JSON language service JSON
jdtls Java language server Java
tsserver TypeScript & JavaScript Language Server JavaScript
ltex Grammar checking of various markup languages LaTex, Markdown
texlab Language Server Protocol for LaTeX LaTex
lua_ls A language server that offers Lua language support Lua
intelephense PHP language server PHP
ruff Fast Python linter and code formatter, written in Rust Python
rust_analyzer Rust compiler Rust
tinymist Language server for Typst Typst
volar High-performance Vue language tooling based-on Volar.js Vue
yamlls Language Server for YAML Files YAML