• Stars
    star
    350
  • Rank 121,229 (Top 3 %)
  • Language
    Lua
  • License
    MIT License
  • Created over 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Personal neovim setup with 180+ plugins.

vim as a programming IDE

๐ŸŽ ๐ŸŽ ๐ŸŽ Need for speed! ๐ŸŽ ๐ŸŽ ๐ŸŽ

This neovim configure file is highly optimized for the impatient. Super lazy loading + After syntax highlight rendering. Render multiple files with treesitter in less than 45ms with ~170 plugins installed (e.g. Open both util.lua(1686 loc) and lsp.lua(1538 loc) from neovim source code in 58.6ms) The setup set all plugins to be lazy loaded and trigger when it needed.

The Packer config locates in branch Packer branch It serves as my personal nvim setup. I am using it as my daily driver. The structure can be messy so it is not a setup for beginner

  • nvim Telescope preview: telescope

  • nvim+kitty + cmp :

    vim_ide with nvim+kitty

Battery included

About 150 plugins and 14000 lines of lua and vim code.

Commands

  • Keymaps : floating windows show all keymaps defined in this repo
  • Jsonfmt: format json file
  • LG: lazygit
  • FZF: fzf
  • Spell: spell check
  • Gram: Grammar check
  • Bd: better bdelete
  • Gd: gitdiff(with fzf and delta)
  • Rg: ripgrep with telescope

Neovim Plugins

There are lots of amazing plugins, I used following plugin a lots

  • Plug -> Dein -> Lua-Packer -> lazy.nvim

    I followed Glepnir https://github.com/glepnir/nvim dotfiles when I start this repo. A.T.M. nvim-cmp as a completion engine with LSP, LSP saga. vim-multi-cursor, telescope. treesitter, lazy load vim-go. So, other than module folder, I could copy/paste everything else from glepnir's configure file, which make my life easier.

  • Telescope + fzf

    One of the best plugin for search anything. I used it to replace fzf, leaderF, leaderP, defx, Ag/Ack/Rg, yank(ring), project management. undolist and many more. Telescope is awesome, only issue is performance.

  • nvim-lsp with navigator.lua

    vim-go and coc add around 200ms time and some of the extensions might crash when I using (but it hard to check which because ~4 node.js services coc forked) Some useful script from TJ, and glepnir

    nvim-tree: file-explorer (lightweight and fast) hrsh7th/nvim-cmp: auto-complete vsnip + luasnips: code snipts(Load snippet from VSCode extension). It is a full featured IDE.

    document symbol

  • ALE -> Efm -> null-ls

Lint and format moved to null-ls.

  • Programming support: Treesitter, nvim-lsp and navigator.lua, for go, go.nvim

  • Debug:

    dlv, nvim-dap

  • Theme, look&feel:

    home cooked Aurora, windline (lua), devicons(lua), blankline(indent), bufferline

  • Color:

    Primary with treesitter from nvim nightly (nvim-lsp and this make it hard for me to turn back to vim), log-highlight, limelight, interestingwords, hexokinase as a replacement for colorizer (display hex and color in highlight)

  • Git:

    fugitive, nvimtree, gitsigns.nvim, diffview.nvim

  • Format:

    tabular, lsp based code formating (or, sometimes prettier), auto-pair

  • Menu and tab:

    • guihua.lua the UI I created for personal use
    • nvim-bufferline.lua: Yes, with lua and neovim only
  • Tools: Toggleterm, scrollview

  • Move and Edit:

    easymotion -> hop&lightspeed, vim-multi-cursor, navigator.lua (better treesitter folding), Sad for complex find and replace

Install

Note: I tested it on Mac and linux, not sure about window

Clone the repo

Link nvim to $HOME/.config/

e.g.

ls ~/.config/nvim

~/.config/nvim -> /Users/rayx/github/dotfiles/nvim

On windows the config path is C:\Users\your_user_name\AppData\Local\nvim You need to link or replace above folder

Please install Nerd Fonts(I am using VictorMono) and kitty so font setting in GUI will work as expected

Startup nvim

If you saw error message "Error in packer_compiled: ..." Please press Enter, that will allow packer install the plugins. After all plugins install restart the nvim.

Note: The packages and data will be install to ~/.local/share/nvim

Please backup this folder if necessary

The setup needs nvim0.8+. For earlier release, please check packer branch. A patched nerd font is needed. Also if you start nvim from terminal, make sure it support nerdfont and emoji

missing sqlite, libsqlite3

Some of the plugin I am using depends on sqlite. By default sqlite was installed on MacOS. For other operating system, if you saw error message about sqlite, please following the instruction here to install sqlite

Youtube video recording of install process

Install process

Configure

If you would like to sync to my branch. You can add you own setup in lua/overwrite folder

You can put your own plugins setup in modules/user folder

Shell

  • fish + spaceship + kitty. It is cooool and faster. nvim+kitty split view:

    vim_ide with nvim+kitty

External tools

You may need to install following tools to make best of the setup

  • git
  • build tools (e.g. gcc, make etc)
  • fzf
  • bat
  • delta
  • lazgit
  • ranger
  • write-good
  • proselint
  • ispell
  • zodide
  • node.js
  • develop language: python(and pynvim), go, rust etc
  • package management: pip, cater, npm etc
  • exa
  • ...

Parking lots

These tools are good, but due to confliction, less use, or, not suite to my workflow

  • vim/gvim
  • YCM you complete me
  • easymotion
  • vim-clap
  • oh-my-zh, iterm2
  • zpreztor
  • defx
  • ALE

More Repositories

1

lsp_signature.nvim

LSP signature hint as you type
Lua
1,987
star
2

go.nvim

G'day Nvimer, Joyful Gopher: Discover the Feature-Rich Go Plugin for Neovim
Lua
1,953
star
3

navigator.lua

Code analysis & navigation plugin for Neovim. Navigate codes like a breeze๐ŸŽ Exploring LSP and ๐ŸŒฒTreesitter symbols a piece of ๐Ÿฐ Take control like a boss ๐Ÿฆ
Lua
1,270
star
4

aurora

A vivid dark theme for modern Neovim.
Lua
318
star
5

cmp-treesitter

cmp source for treesitter
Lua
225
star
6

starry.nvim

A pack of modern nvim color schemes: material, moonlight, Dracula (blood), Monokai, Mariana, Emerald, earlysummer, middlenight_blue... Fully support Treesitter, LSP and a variety of plugins.
Lua
214
star
7

sad.nvim

Space Age seD in Neovim. A project-wide find and replace plugin for Neovim.
Lua
187
star
8

guihua.lua

A GUI library for Neovim plugin developers
Lua
160
star
9

web-tools.nvim

Neovim plugin for web developers
Lua
145
star
10

forgit.nvim

Interactive fzf+git for Neovim. I remembered the git commands so you wont forget.
Lua
74
star
11

dotfiles

Shell
34
star
12

material_plus.nvim

A pack of modern nvim color schemes: material, moonlight, Dracula (blood), Monokai, Mariana, Emerald, earlysummer, middlenight_blue... Fully support Treesitter, LSP and a variety of plugins.
Lua
23
star
13

Wifi-TI3200

iOS APP for WIFI starter of TI 3200, fix multiple issue on building
Objective-C
21
star
14

telescope-ast-grep.nvim

AST grep extension for telescope.nvim
Lua
20
star
15

viewdoc.nvim

Search and view your (vim plugins) markdown & help files with glow
Lua
19
star
16

rtems_book

rtems internal and development
15
star
17

ButtonAnimationCollage

Animate the iOS button with CABasicAmimation. Provide Ripple, border, invert effects.
Objective-C
12
star
18

cmp-sql

SQL keywords for cmp
Lua
11
star
19

mkdn.nvim

markdown note taking tools with LSP
Lua
10
star
20

Revised_II

RenPy Visual editor
C++
4
star
21

yamlmatter.nvim

Enhancing the display of YAML frontmatter in Markdown files
Lua
4
star
22

AudioAnalysis

Java
2
star
23

Gululu

Gamify Your Fitness
Swift
2
star
24

ray-x

2
star
25

blog

django-blog
CSS
1
star
26

ray-x.github.io

ray-x blog page
HTML
1
star