Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Markdown Preview.nvim | 4,395 | 2 months ago | 162 | mit | JavaScript | |||||
markdown preview plugin for (neo)vim | ||||||||||
Nvim Config | 2,261 | 11 days ago | 10 | mit | Lua | |||||
A modern Neovim configuration with full battery for Python, Lua, C++, Markdown, LaTeX, and more... | ||||||||||
Nvim Completion Manager | 927 | 5 years ago | 32 | mit | Python | |||||
:warning: PLEASE USE https://github.com/ncm2/ncm2 INSTEAD | ||||||||||
Vim Pandoc | 901 | 10 days ago | 94 | mit | Vim Script | |||||
pandoc integration and utilities for vim | ||||||||||
Glow.nvim | 867 | 8 hours ago | 2 | mit | Lua | |||||
A markdown preview directly in your neovim. | ||||||||||
Marksman | 833 | 3 days ago | 1 | March 26, 2022 | 40 | mit | F# | |||
Write Markdown with code assist and intelligence in the comfort of your favourite editor. | ||||||||||
Markdown Preview.vim | 735 | 4 years ago | 32 | CSS | ||||||
⚠️ PLEASE USE https://github.com/iamcco/markdown-preview.nvim INSTEAD | ||||||||||
Vscode Ltex | 610 | 20 days ago | 9 | November 28, 2021 | 69 | mpl-2.0 | TypeScript | |||
LTeX: Grammar/spell checker :mag::heavy_check_mark: for VS Code using LanguageTool with support for LaTeX :mortar_board:, Markdown :pencil:, and others | ||||||||||
Vim Markdown Composer | 570 | 9 months ago | 31 | Rust | ||||||
An asynchronous markdown preview plugin for Vim and Neovim. | ||||||||||
Nvim | 388 | 11 days ago | mit | Lua | ||||||
Straight forward and pure Lua based Neovim configuration for my work as DevOps/Cloud Engineer with batteries included for Python and Golang |
This configuration works on my Manjaro Linux as well as on my macOS and requires Neovim >= 0.8!
Have a look at my rice how my Linux machine is configured and at my mac-setup how my MBP is configured. My dotfiles are also on GitHub.
Terminal: alacritty
Font: Jetbrains Mono
See ./lua/core/config/ui/which-key.lua
for details.
There are many great Neovim configurations (see Inspiration), that give you a pleasant experience right out of the box, available. However, I am a long time (Neo)Vim user with a specific workflow and needs. Additionally, I do not have any Lua background and was not willing to spent too much time into that. Therefore, it was quite hard for me to customize and strip down the existing configs to my needs especially because the code is quite sophisticated.
I decided to move to my own fresh Lua based Neovim from my good old vimrc trying to accomplish the following principles.
If you have Docker on your system you can try out this config via the provided Dockerfile
Due to installing required tools like LSPs, CLI apps, etc. the image is approximately 3 GB large
There are some issues with building a multi architecture Docker image via GitHub Action. Until I sorted that out, you can build the Docker image locally on your own
docker build -t nvim .
docker run --name nvim --rm -it nvim
docker run --name nvim --rm -it -v ${HOME}/tmp:/home/nvim/mount nvim
docker run --name nvim --rm -it --entrypoint=/bin/bash nvim
I created an installation script that sets up all required tools on a fresh machine to work with my Neovim config.
For now, it works on Debian/Ubuntu and Arch. MacOS will be added soon.
USE AT YOUR OWN RISK!!
There are some tools that are required in order to use some features/plugins:
For neo-tree delete functionality:
For Latex functionality:
The following programs should be installed on your system so that the appropriate tools can be installed:
Go related dependencies are managed by go.nvim
and are installed by running :GoInstallBinaries
(when a Go file is loaded). They are installed in your $GOPATH
.
All other dependencies are managed by Mason. Tools are installed by running :MasonToolsInstall
(in vim.fn.std path("data") .. "mason"
). [Mason requirements](https://GitHub.com/William beman/mason.nvim#requirements) must be available on your system.
Mode | key | binding |
---|---|---|
n | space | Leader key |
n | <c-h | j | k | l> | Change window focus (including Tmux panes) |
n | <leader>Tab | Switch to previously opened buffer |
n | <Tab> | Switch to next buffer (bnext) |
n | <S-Tab> | Switch to previous buffer (bprevious) |
n | st | Visual selection with Treesitter hint textobject |
v | sa | Add surrounding |
n | sd | Delete surrounding |
n | sr | Replace surrounding |
n | <c-Tab> | Start auto completion (without typing anything) |
n/v | ga | Start mini.align (align text) |
n | gcc | Toggleline comment |
n/v | gc | Toggleline comment (works with movements like gcip ) |
n | ss | Search 2 char (mini.jump2d) |
i/s | <c-j> | Luasnip expand/forward |
i/s | <c-k> | Luasnip backward |
i | <c-h> | Luasnip select choice |
n | <c-n> | Toggleterm (opens/hides a full terminal in Neovim) |
i | <c-l> | Move out of closing brackets |
n | <CR> | Start incremental selection |
v | <Tab> | Increment selection |
v | <S-Tab> | Decrement selection |
n | <c-f> | Search buffer |
i/v/n/s | <c-s> | Save file |
Hit <leader>
to start which-key
which gives you more mappings grouped by topic.
tree1 .
.
after # file specific settings
init.lua # main entry point
lazy-lock.json # Lockfile for Lazy.nvim
lua/core # lua configuration
snippets # snippets directory (luasnip style)
spell # my spell files linked from another repo
tree1 lua/core
lua/core
autocmd.lua # autocmds for various things
config # configuration folder for plugins
globals.lua # global functions
lazy.lua # Lazy configuration
mappings.lua # key bindings
options.lua # vim options
plugins # plugins and their configuration
settings.lua # user settings to configure
Each plugin to be installed is defined in ./lua/core/plugins/
in a separate file.
The intention of my Neovim configuration was never to be a fully customizable "distribution" like LunarVim, SpaceVim, etc. but from time to time I like to change my color scheme and the idea of making this configurable came to my mind. Based upon this idea I implemented some further lightweight configuration options that might be useful.
All options can be found in ./lua/core/settings.lua
.
You can add LSPs via lsp_servers
in settings.lua. The server will be installed by Mason und loaded by nvim-lspconfig. If you want to pass settings for the LSP have a look at ./lua/core/plugins/lsp/settings/
how to add settings for specific LSPs.
You can remove unwanted plugins by just removing the appropriate file in ./lua/core/plugins/
. Lazy will take care of removing the plugin.
Keep in mind that some plugins are configured to work in conjunction with other plugins. For instance, autopairs is configured in ./lua/vim/config/treesitter.lua
. For now there is no logic implemented that cross-checks such dependencies.
If you want to follow my method adding a plugin is straight forward:
Create a file in ./lua/core/plugins/
following the expected format of Lazy.
Open another instance of Neovim (I always try to keep one running instance of Neovim open in case I messed up my config) and run Lazy sync
.