Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/GideonWolfe/vim.reaper

💀 A Hackable, Fully Featured, Rice Friendly Neovim Configuration
https://github.com/GideonWolfe/vim.reaper

coc neovim pywal startify vim vista

Last synced: about 2 months ago
JSON representation

💀 A Hackable, Fully Featured, Rice Friendly Neovim Configuration

Awesome Lists containing this project

README

        



💀 A Hackable, Fully Featured, Rice Friendly Neovim Configuration 💀


Features
Installation
Usage
Required Tools














# Features

- 🎨 Colorscheme generated with [pywal](https://github.com/dylanaraps/pywal)
- 💭 Intellisense, Completion, and Linting with [coc.nvim](https://github.com/neoclide/coc.nvim)
- 🏷️ Tag management with [vista.vim](https://github.com/liuchengxu/vista.vim)
- 🔀 Git integration with [vim-fugitive](https://github.com/tpope/vim-fugitive), [vim-gitgutter](https://github.com/airblade/vim-gitgutter) and [lazygit](https://github.com/jesseduffield/lazygit)
- ✈️ Informative statusline and tabline with [vim-airline](https://github.com/vim-airline/vim-airline)
- ✂️ Code snippets powered by [UltiSnips](https://github.com/sirver/UltiSnips)
- 💡 Intelligent suggestions with [vim-tabnine](https://github.com/zxqfl/tabnine-vim)
- 📁 Simple file browsing with [NERDTree](https://github.com/scrooloose/nerdtree)
- 📜 Dynamic homepage with [vim-startify](https://github.com/mhinz/vim-startify)
- 🔎 Distraction free writing with [Goyo](https://github.com/junegunn/goyo.vim)
- 🔧 Easily configfurable to suit your needs
- ⌨️ Common sense keybinds, so you can get right to work
- 🧰 Assorted editing enhancements with
- [vim-surround](https://github.com/tpope/vim-surround)
- [auto-pairs](https://github.com/jiangmiao/auto-pairs)
- [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors)
- [indentLine](https://github.com/Yggdroot/indentLine)
- [tabular](https://github.com/godlygeek/tabular)
- [comfortable-motion.vim](https://github.com/yuttie/comfortable-motion.vim)
- [vim-devicons](https://github.com/ryanoasis/vim-devicons)
- [NERD commenter](https://github.com/scrooloose/nerdcommenter/)
- [vim-table-mode](https://github.com/dhruvasagar/vim-table-mode)
- [vim-easymotion](https://github.com/easymotion/vim-easymotion/)

# Installation

The `update_config.sh` script simply copies the `nvim` folder into your `$HOME/.config` directory. This script can also be used to update configurations that you have modified or have been updated from git.

Before installing for the first time, go into the `vim.reaper/nvim` directory and run `nvim -u init.vim`. This will tell neovim to launch using this configuration file. This lets you fully get everything up and running before you commit to puting it in `.config`. Back up any old configs!

# Usage

## Keybindings

Click to expand

Basic keybinds 🔑



| Function | Keybind |
| --------------------------------------- | --------------- |
| Leader Key | `SPACE` |
| Exit insert mode | `jk` or `kj` |

Editing 🧬



| Function | Keybind |
| --------------------------------------- | --------------- |
| NERDComment toggle comment | `nc` |
| NERDComment sexy comment | `ns` |
| NERDComment append comment | `na` |
| NERDComment uncomment | `nu` |
| NERDComment comment | `n` |
| NERDComment invert | `ni` |
| Table Mode Toggle | `tm` |
| Convert to Table | `tt` |

Navigation 🚀



| Function | Keybind |
| -------------------------------------------- | ------------------------- |
| Navigate to left window | `Ctrl+h` |
| Navigate to right window | `Ctrl+l` |
| Navigate to top window | `Ctrl+k` |
| Navigate to bottom window | `Ctrl+j` |
| Horizontal split then move to bottom window | `+Ctrl+s` |
| Horizontal split then move to right window | `+Ctrl+l` |
| Next tab | `Tab` |
| Previous tab | `Shift+Tab` |
| Kill buffer | `bk` |
| Scroll up | `Ctrl+j` or mouse scroll |
| Scroll down | `Ctrl+k` or mouse scroll |
| Easymotion find word | `+w` |
| Easymotion find end of word | `+e` |
| Easymotion find character | `+f` |
| Easymotion find two characters | `+s` |

coc.nvim 💭



| Function | Keybind |
| --------------------------------------- | --------------- |
| Open completion window | `Tab` |
| Accept completion | `Enter` |
| coc-definition | `cd` |
| coc-type-definition | `ctd` |
| coc-type-implementation | `ci` |
| coc-references | `cr` |
| coc-rename | `crn` |
| coc-format-selected | `cf` |
| coc-fix-current | `cfl` |
| :CocList diagnostics | `cdi` |
| :CocList extensions | `ce` |
| :CocList commands | `cc` |
| :CocList outline | `co` |

git 🔀



| Function | Keybind |
| --------------------------------------- | --------------- |
| :Gstatus | `gs` |
| :Gdiffsplit | `gd` |
| :Gcommit | `gc` |
| :Gpush | `gp` |
| :Gpull | `gP` |
| :Gmove | `gm` |
| :Gmerge | `gM` |
| :Gbrowse | `gb` |
| :CocCommand git.browserOpen | `gbl` |
| :CocCommand git.chunkInfo | `gh` |
| :CocCommand git.showCommit | `gsc` |
| :CocCommand git.toggleGutters | `gg` |
| :ToggleLazyGit | `lg` |

Translation 🌐



| Function | Keybind |
| --------------------------------------- | --------------- |
| :Translate | `t` |
| :TranslateW | `tw` |
| :TranslateR | `tr` |

LaTeX 📜



| Function | Keybind |
| --------------------------------------- | --------------- |
| :VimtexCompile | `lc` |
| :VimtexCompileSelected | `ls` |
| :VimtexInfo | `li` |
| :VimtexTocToggle | `lt` |
| :VimtexView | `lv` |

Misc 🧰



| Function | Keybind |
| --------------------------------------- | --------------- |
| :ToggleLazyDocker | `ld` |
| :MarkdownPreview | `md` |

Check `mappings.vim` for a complete list of keybinds.

## Startify

To open Neovim to the startify buffer, simply launch `nvim` without any arguments. Your recently edited files will be displayed, as well as recently edited files from the current directory.



## Completion

In the middle of a word, you can press `Tab` to open the Coc floating completion menu and cycle through options. This menu should be populated with sippets from `UltiSnips`, smart complete from `TabNine`, and any other completion suggestions. Press `Shift+Tab` to go up in the menu, and `Enter` to select an option.




Note: Windows are set to the background color because the other colors look gross IMO. Ideally we could have a border on the floating windows but that is not implemented in CoC yet.

## NERDTree

In any buffer, press `F7` to open the NERDTree file browser. Optionally disable the `nerdtree-highlights` plugin if you don't want syntax highlighting in NT.



## Airline

### Tabline

The tabline will display the currently open buffers, and whether they have been modified.



### Statusbar

The status bar displays the current editing mode, git hunks, git branch with branch status, the modified status of the buffer, the filename and filetype, the character encoding method, progress through file, and warnings/errors found by linter.



## Vista

I am still ironing out the kinks in my vista config (specifically with C files), but it should work pretty well for most filetypes. Press `F8` to toggle the Vista window.



For quick location of tags, you can activate the `Vista finder` fuzzyfinder by pressing `ft`



To navigate the fzf menu, you can type the name of the tag or use `Ctrl+j` or `Ctrl+k`

## LazyGit and LazyDocker

LazyGit and LazyDocker give you a convenient TUI portal to your current git repo or docker stack. They can be brought up with `lg` and `ld` respectively.






## Translator

By default I set the target language to french. This option is configurable in the plugin-settings, plus a ton of other options for that plugin I'm not even using at the moment.

Here's what it looks like if you translate a phrase to a window with `tw`.



## Markdown

While editing a markdown document, press `md` to open a live preview of your document. You must edit the plugin settings to point to the absolute filepath of the `css` file. This shoud just mean changing the username.



If you are running pywal, your colors will be dynamically sourced!

## LaTeX

While editing a LaTeX document, press `lc` to start automatic compilation.



use [zathura pywal](https://github.com/GideonWolfe/Zathura-Pywal) for the most cohesive theme!

# Required tools

These must be installed to make use of all the awesome features

- `fzf` to enable fuzzy finding
- `eslint` [npm package](https://www.npmjs.com/package/eslint) for coc-eslint (only for JavaScript)
- `ccls` package for C/C++ language servers
- `OracleJDK` or `OpenJDK`, version 8+ (only for Java)
- `git`
- coc.nvim [npm package](https://www.npmjs.com/package/coc.nvim)
- [pywal](https://github.com/dylanaraps/pywal) for colorscheme
- `neovim` python module from pip
- [lazydocker](https://github.com/jesseduffield/lazydocker) for TUI docker management
- [lazygit](https://github.com/jesseduffield/lazygit) for TUI git management

# Notes

vim.reaper is only part of a balanced linux diet. Check out my dotfiles for more ricing goodness. Please feel free to let me know about any errors, or create PRs that expand the configuration or make it more robust on different systems.