Skip to content

Latest commit

 

History

History
299 lines (223 loc) · 16.2 KB

README.md

File metadata and controls

299 lines (223 loc) · 16.2 KB

Neovim Configuration

🌟 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