My personal neovim configuration.
- Clone the repo into the neovim settings folder (typically
~/.config/nvim). - Run the install script.
./.config/nvim/linux-setup.sh(Optional) Install neovide:
mkdir -p ~/bin/appimages
cd ~/bin/appimages
curl -LO https://github.com/neovide/neovide/releases/latest/download/neovide.AppImage
chmod +x neovide.AppImage
ln -s ~/bin/appimages/neovide.AppImage /usr/local/bin(Optional) Install LaTeX (and RST) language server (not currently enabled):
curl -LO https://github.com/valentjn/ltex-ls/releases/download/16.0.0/ltex-ls-16.0.0-linux-x64.tar.gz
tar -xvf ltex-ls-16.0.0-linux-x64.tar.gz -C ~/bin
rm ltex-ls-16.0.0-linux-x64.tar.gz
sudo ln -s ~/bin/ltex-ls-16.0.0/bin/ltex-ls /usr/local/bin(Optional) Install the markdown language server:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Install rust
cargo install iwes(Optional) Place the following line in ~./bashrc:
alias v='nvim'Or, for neovide:
alias v='neovide.AppImage'Consider setting this in $profile, which better matches the default behavior
of bash:
Set-PSReadLineOption -EditMode Emacs
Chocolatey must be installed for the setup instructions below.
C++ build tools must be installed before installing and building plugins. To do so, install VS Build Tools. When running the installer,
- Choose "Visual Studio Build Tools" and make sure "C++ Clang Tools" is checked
- Add clang location to path, most likely by adding
$env:PATH += ';C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\Llvm\x64\bin'to$profile.
-
Run the MSI installer from the latest release.
-
Clone the repo into the neovim settings folder (
~/AppData/Local/nvim/). -
Install required packages:
# Windows
choco install make cmake ripgrep- Set up language servers:
winget install pip
pip install pyright ruff
# Install Julia
winget install julia -s msstore
julia -e 'using Pkg; Pkg.add("LanguageServer")'Fira Mono: FiraMono Download
| Mode | Keys | Action |
|---|---|---|
| N, X | H |
Move to first non-whitespace char on line |
| N, X | L |
Move to the end of the line |
| N, X | <space>m |
Set mark |
| N, X | s |
Begin leap search forward |
| N, X | S |
Begin leap search backward |
| N, X | gs |
Begin leap search in other splits |
| N, X | gS |
Begin leap action at a distance |
| Mode | Keys | Action |
|---|---|---|
| N, X | m |
Cut selection |
| Normal | M |
Cut to the right of cursor |
| Normal | mm |
Cut line |
| N, X | <space>j |
Toggle splitting/joining lines by delimiters |
| Mode | Keys | Action |
|---|---|---|
| Normal | <A-s> |
Split horizontally |
| Normal | <A-v> |
Split vertically |
| Normal | <C-{h/j/k/l}> |
Move between splits to {left/bottom/top/right} |
| Normal | <A-{h/j/k/l}> |
Move split pane to the {left/bottom/top/right} |
| Normal | <A-o> |
Jump back to the previously opened buffer |
| Normal | <A-i> |
Jump forward to the next opened buffer |
| N, X | <A-=> |
Set split panes to equal sizes |
| N, X | <C-c> |
Close pane |
| N, X | <A-d> |
Delete buffer or exit terminal |
| Normal | <A-t> |
Make new tab |
| Normal | <A-c> |
Close tab |
| Mode | Keys | Action |
|---|---|---|
| Normal | ; |
Quick select from buffers |
| Normal | , |
Open/close file browser |
| Normal | <space>; |
Fuzzy search files |
| Normal | <space>gg |
Grep for text in files |
| Normal | <space>gw |
Grep list of occurrences of word under cursor |
| Normal | <space>z |
Show spelling suggestions |
| Normal | <space>sb |
Fuzzy search buffers |
| Normal | <space>sh |
Fuzzy search help tags |
| Normal | <space>p |
Fuzzy search clipboard history |
| Normal | <space>u |
Fuzzy search undo history tree |
| Normal | <space>gB |
Fuzzy search git branches |
| Normal | <space>gc |
Fuzzy search git commits |
| Normal | <space>ss |
Fuzzy search LSP symbols |
| Normal | <space>so |
Fuzzy search outgoing call hierarchy |
| Normal | <space>si |
Fuzzy search incoming call hierarchy |
| Normal | <space>st |
Fuzzy search Telescope search pickers |
| Normal | <space>re |
Toggle project-wide find/replace window |
| Mode | Keys | Action |
|---|---|---|
| Normal | <space>q |
Toggle quickfix list |
| Normal | {[/]}q |
Jump to {previous/next} quickfix list item |
| Mode | Keys | Action |
|---|---|---|
| Normal | <space>: |
Open command-line window |
| Normal | <space>/ |
Open command-line window (forward search) |
| Normal | <space>? |
Open command-line window (reverse search) |
| Normal | <esc> |
Close command-line window |
| Mode | Keys | Action |
|---|---|---|
| Normal | <space>t |
Open new terminal in current window |
| Normal | <space>T |
Open new terminal in split |
| N, X | <space><enter> |
Execute current line/selection in terminal |
| Mode | Keys | Action |
|---|---|---|
| Normal | <space>go |
Open git GUI |
| Normal | {[/]}c |
{Previous/Next} git hunk |
| O, X | ih |
Select inner git hunk |
| Normal | <space>hp |
Preview git hunk |
| Normal | <space>hs |
Stage git hunk |
| Normal | <space>hr |
Reset git hunk |
| Normal | <space>hS |
Stage all git hunks in buffer |
| Normal | <space>hR |
Reset all git hunks in buffer |
| Normal | <space>hu |
Undo staging git hunk |
| Normal | <space>td |
Toggle showing deleted lines on/off |
| Normal | <space>hb |
Show git blame for last change on this line |
| Normal | <space>gb |
Open git blame for the current file |
| Normal | <space>hD |
Show git diff for current buffer |
| Normal | <space>gd |
Open git diff view page of all changed files |
| Normal | <space>gf |
Open git file history for current buffer |
| Normal | <space>gu |
Open git diff against upstream (branch point) |
| Mode | Keys | Action |
|---|---|---|
| Normal | K |
Hover LSP symbol |
| Normal | gd |
Go to LSP symbol definition |
| Normal | gD |
Go to LSP symbol declaration |
| Normal | <space>D |
Go to LSP symbol type definition |
| Normal | <space>rn |
Rename LSP symbol |
| Normal | <space>R |
Rename LSP symbol, erasing the current name |
| Normal | <space>ca |
Execute code actions |
| Normal | <space>gr |
Show LSP symbol references |
| Normal | <space>l |
Auto-format buffer |
| Normal | [e |
Jump to previous diagnostic |
| Normal | ]e |
Jump to next diagnostic |
| Normal | <leader>E |
Show the diagnostic under the cursor |
| Normal | <space>a |
Add annotation (e.g. docstring) |
| Normal | <space>ca |
Execute code actions |
| Insert | <Tab>/<C-Space> |
Manually trigger autocomplete |
| Insert | <C-e> |
Close autocomplete window |
| Insert | <Tab> |
Select next autocomplete suggestion |
| Insert | <S-Tab> |
Select previous autocomplete suggestion |
| Insert | <CR> |
Confirm selected autocomplete suggestion |
| Insert | <C-l> |
Jump forward within snippet/annotation |
| Insert | <C-h> |
Jump backward within snippet/annotation |
| Mode | Keys | Action |
|---|---|---|
| Normal | <leader>ww |
Open personal wiki index page |
| Normal | <tab> |
Jump to next link in markdown document |
| Normal | <leader>nf |
Create new file from path under cursor |
| Normal | <leader>mv |
Toggle markdown rendering enhancements |
| Mode | Keys | Action |
|---|---|---|
| Insert | <space>db |
Toggle breakpoint |
| Insert | <space>dB |
Set conditional breakpoint |
| Insert | <space>dc |
Start/continue debugger |
| Insert | <space>di |
Debugger step into |
| Insert | <space>do |
Debugger step over |
| Insert | <space>dO |
Debugger step out |
| Insert | <space>dr |
Debugger toggle REPL |
| Insert | <space>dl |
Rerun last debugging session |
| Insert | <space>dx |
Terminate debugger |
| Insert | <space>du |
Toggle debugger UI |
| DAP UI | e |
Edit action |
| DAP UI | <CR> |
Expand action |
| DAP UI | o |
Open action |
| DAP UI | d |
Remove action |
| DAP UI | r |
REPL action |
| DAP UI | t |
Toggle action |