Awesome Open Source
Awesome Open Source

NVIMRC V1.7.2

Author

TODO


  • [ ] Update readme
  • [ ] Add telescope
  • [ ] Add bash language server
  • [ ] Reformat and fill snippets for new languages
  • [ ] Update version to v1.8

Description


My (Programmer) configuration for Neovim.

  1. Auto completion
  2. Language-servers integration using built in nvim-lspconfig and and install script
  3. Git management from inside the editor
  4. Using the tree-sitter parser (better IMO)
  5. cplex colorscheme | link to it's vimcolorsschemes page
  6. Usefull & Light scripts
  7. Mini utils

and of course some other settings mappings and tweaks that help me code faster.

Tested on:

  • [x] Linux
  • [x] Mac
  • [x] Windows (install script not available in batch yet)

Notes


  • First and foremost this configuration was made for my use so it may not be 'the right one' for you, I deeply encourage any one that uses vim to customize it for themselves and for their type of use (as I mentioned, for me it is mainly programming)

  • This configuration has been tested so far on Linux and on windows (windows needs a bit more tweaking to get it just right) and is planned to work in a manner that most systems and terminal emulators will run well.

  • There are a lot of parts in this configuration that need things to go right and be installed (compilers, Language-servers, etc) so for that reason everything used here comes with links for the original pages (didn't included them because they'd bloat the repo and won't be up to date)

  • All the paths for thins such as servers and files outside of the configuration are in the globals so set them for your paths

Requirements


The requirements for the configuration

for windows users I recommend getting MinGW because it comes with make and gcc

  • Make - for installing certain plugins (also helps with building projects in general)
  • C-compiler (e.g gcc) with libstdc++ installed! (windows users!)
  • Go language - for the color formats coloring plugin
  • Node.js

Recommended:

  • nerd font supported terminal (I use 'Hack Nerd Font')

If you want to use it set let g:Use_nerdfonts = ? to 1 and if not then to 0 in init.vim

More options with the tree-sitter parser

Repo layout


Flags:
(a) - automatically runs (Doesn't need to get sourced to init)
(s) - does need to be sourced to init
(n) - doesnt releated to the editor directly (or at all)
(.) - same as the one above it

nvim/
|- init.vim                 F(a) File that initializes the editor's behavior
|- plugins.vim              F(s) Specifies the plugins that need to be installed or loaded and configured (for the plugin manager)
|- README.md                F(n) You'r here, inforamtion about this repo
|- after/                   D(a) Overrule or add to the system-wide configuration
|  |- ftplugin/             D(a) File type specific configuration
|- autoload/                D(a) Place to put scripts that will load automatically and can be accessed from anywhere
|  |- plug.vim              F(.) The plugin manager (vim-plug)
|  |- plugged/              D(.) All the installed plugins are here
|  |- myUtils/              D(.) My utils for the configuration (e.g Devicons, lspinfo, coloring, ..)
|- colors/                  D(a) Colorschemes
|- |- cplex.vim             F(.) my colorscheme (feel free to suggest your own!)
|- configs/                 D(s) All the configurations for non-native things
|  |- lsp-servers/          F(.) Lsp-servers configuration
|  |- plugins/              F(.) Plugins configurations
|- releated/                D(n) Files for editor releated things (e.g Language-servers's setup script and file for generating your own highlight lists)
|- plugin/                  D(a) External scripts used by the editor or the user
|  |- sets.vim              F(.) All the 'set ..' command so the main settings for vim
|  |- mappings.vim          F(.) Most of the mappings (if you don't see here a mapping you look for then check inside the specific plugin's config)

Plugins


Plugin manager is vim-plug

  1. nvim-cmp Lua plugin for auto completions

if your moving from nvim-compe to nvim-cmp beware that now everything is in its own plugin now so...

Works well and doesn't come with more features then necessary

  1. nvim-lspconfig Neovim built in language server protocol manager

For running code actions, code diagonstics and smart auto completion it's built in so it's the most trusted on terms of support or maintenance

  1. ultisnips Snippets

If you want a lot of snippets take a look at vim-snippets

  1. nvim-treesitter Better (and faster) text parser

faster, well equipped and good for creating scripts (refactoring, definition tamplates, etc..) for complex code

  1. treesitter-playground

Allowes you to view the 'behind the scenes' of tree-sitter directly in neovim

  1. vim-fugitive Makes Git a seamless part of the vim workflow

"Fugitive is the premier Vim plugin for Git. Or maybe it's the premier Git plugin for Vim? Either way, it's 'so awesome, it should be illegal'. That's why it's called Fugitive." - From it's README.markdown

  1. vim-gitgutter Git's diff displayer

Gotta see what changed while changing some more

  1. vim-surround The best way imo to manage surrounded text, which is essential for code editing

Well integrated into vim's text actions and saves a lot of time

  1. vim-repeat Enables using the . for repeating a plugin map

"Repeat.vim remaps . in a way that plugins can tap into it." - From it's README.markdown

  1. vim-hexokinase Preview colors by coloring their value in their color [e.g #ffffff will be displyed in white (also the word white will be displyed in white]

A true life saver when working on front-end color tables or any other place where coloring by rgb/hex/hsl values

  1. vim-copilot Github's AI pair programmer which suggests wise completions as you type

A very interesting tool which we all need to follow closely and carefully

Language-servers


All the language-servers installing is inside setup_lang_servers script

C 'family' ls

Microsoft's python ls

Eclipse's ls, many say that it is hard to configure but it's the best out there

The official Go language server developed by the Go team

Usefull to have if your customizing your Vim

Usefull to have if your customizing your Neovim

Pictures


colorscheme

colorscheme on clear terminal

Statusline

statusline

history browser

file history browser

Tabline Selected , Normal , Modified , Warning , Error

tabline

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Vim (18,649
Vim Script (11,483
Neovim (3,949
Vim Plugin (2,484
Vimrc (2,252
Nvim (1,444
Vim Colorscheme Dark (23
Nvim Configuration (8
Netrw (5