MarkusSagen / nvim

Neovim config

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Neovim from scratch

NOTE: This config of neovim requires version 0.8+ (because of null-ls)

With inspiration from:

All configs found under the lua folder. Keymaps are located under lua/keymaps.lua and lua/lsp/handlers.lua

Pre-requisite

Installing Nvim

See Neovim Quick Start Ubuntu:

Easiest:

# Download
https://github.com/neovim/neovim/releases/tag/nightly
mv ~/Downloads/nvim.appimage ~/nvim.appimage
echo "alias nvim='~/nvim.appimage'" >> ~/.bashrc
chmod u+x ~/nvim.appimage && ~/nvim.appimage
sudo apt-get install ninja-build gettext libtool libtool-bin autoconf automake cmake g++ pkg-config unzip curl doxygen
git clone https://github.com/neovim/neovim ~/neovim
cd ~/neovim && make CMAKE_BUILD_TYPE=RelWithDebInfo
git checkout release-0.8 # stable
sudo make install

Setup and trying this config

Make sure to remove or move your current nvim directory

git clone git@github.com:MarkusSagen/nvim.git ~/.config/nvim
nvim

Or the full install:

git clone git@github.com:MarkusSagen/nvim.git ~/.config/nvim
sudo apt install xclip  xsel
pip install pynvim
npm i -g neovim
nvim

Run nvim and wait for the plugins to be installed

NOTE: (You will notice treesitter pulling in a bunch of parsers the next time you open Neovim)

each video will be associated with a branch so checkout the one you are interested in

Uninstall

rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim

Get healthy

Open nvim and enter the following:

:checkhealth

You'll probably notice you don't have support for copy/paste also that python and node haven't been setup

So let's fix that

First we'll fix copy/paste

  • On mac pbcopy should be builtin

  • On Ubuntu

    sudo apt install xsel
  • On Arch Linux

    sudo pacman -S xsel

Next we need to install python support (node is optional)

  • Neovim python support

    pip install pynvim
  • Neovim node support

    npm i -g neovim

Fonts

After moving fonts to ~/.local/share/fonts/

Run: $ fc-cache -f -v

NOTE: (If you are seeing boxes without icons, try changing this line from false to true: link)

Java Debugging and Testing

git clone git@github.com:microsoft/java-debug.git
cd java-debug/
./mvnw clean install
git clone git@github.com:microsoft/vscode-java-test.git
cd vscode-java-test
npm install
npm run build-plugin

Install latest rust-analyzer binary

mkdir -p ~/.local/bin
curl -L https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz | gunzip -c - > ~/.local/bin/rust-analyzer
chmod +x ~/.local/bin/rust-analyzer

Needs more love (TODOs)

Below are some packages that could need some more love and attention to get the optimal developer experience.

  • dap

  • dap-ui

  • Neogit, DiffView, gitfugitive

  • buffer and navigation

  • Windows

  • ToggleTerm

  • Remote development

  • Search online (vim, Rustdoc, ect)

  • display errors inline

  • Gitlens and GitKracken

  • Quickly run something in terminal buffer

  • VimWiki

  • vifm/vifm

  • vimagit

  • vim-minimap

  • nvim fold sections

  • ap/vim-css-colors

  • tpope/vim-surround

  • Git workflow (merge, diff, push, log, pull, commit id, stash, comment)

  • Bookmark

  • Inline comments

  • Which key (make sure that searching works with which key)

  • regex

  • lua config

  • search and replace

  • macros (norm mode)

  • vim navigation (horizontal and vertical)

  • :help section

  • Spell check

  • abbreviation file (

  • Update nvim-biscuit

  • Bookmarks, save and load workspaces / windows

  • inline notes

  • Read man pages / documentation from vim

About

Neovim config

License:GNU General Public License v3.0


Languages

Language:Lua 95.5%Language:Vim Script 4.3%Language:Shell 0.1%