Skip to content
/ nvim Public

One editor to roll them all. (GotoDef FindRef Completion Snippet Format Lint Refactor Test Debug Repl Task)

Notifications You must be signed in to change notification settings

younger-1/nvim

Repository files navigation

My love, you're the unsolved wave, I'm the naked island.

Introduction

Feature-rich, beautiful and fast neovim config.

  • Aesthetic and beautiful appearance
  • Blazing fast startup time
    • Builtin startup time check
    • Lazy load plugins as much as possible
    • Reduce unnecessary plugins by builtin autocmd and function
  • Coding friendly
    • Goto definition/reference and code completion powered by LSP
    • Highlight and in-file navigation powered by Treesitter
    • Git: git related action
    • Search: telescope related action
  • Discoverable UX: out of box and easy to use
    • Spacemacs inspired keybinding scheme - ergonomics, mnemonics and consistency
  • Modular config: extensible and easy to hack
    • Every piece of config can be reload
    • Decouple plugins from core config and core keymappings
    • Sane defaults for each plugin
    • Pin core plugins for snapshot and rollback
  • For all major platforms: Windows/Linux/macOS/BSD

Features

Langauges

Lang LSP Format Lint Test Debug
Zig zls
Rust rust_analyzer
C/C++ clangd
Go gopls
Java jdtls google_java_format
Lua lua_ls stylua selene
Python pyright black flake8
Vim vimls
Sh bashls shfmt shellcheck
Yaml yamlls
Json jsonls

see language

Keymappings

see shortcut

Modules

see plugins.lua

  • BWT
  • LSP
  • UI
  • appearance
  • basic
  • change
  • code
  • edit
  • file
  • find
  • git
  • lang
  • neovim
  • telescope
  • theme
  • tool
  • write

GUI

For keymappings of these neovim gui, see shortcut

init.lua

ginit.vim

Performance

Start up in 82ms.

see startup time

Update

Pin plugins to pined commit version

# update to latest commit of pin plugins: xy.plugins.pins()
nvim --headless -c 'luafile ./utils/generate_new_lockfile.lua'

Personal

Local machine scope config for overriding defaults without disturb git repo

  • <leader>yl to open local config, which is a copy of template
  • Only language-server for now.
  • Be able to customize every piece of core/plugin config through xy magic! (coming soom)

Appearance

Structure

 nvim
├──  autoload/
│  └──  yo/
│     ├──  fn.vim
│     ├──  fold.vim
│     └──  redir.vim
├──  ftplugin/
│  ├──  c.vim
│  ├──  gitcommit.vim
│  ├──  help.vim
│  ├──  java.vim
│  ├──  json.vim
│  ├──  kitty.vim
│  ├──  lua.vim
│  ├──  markdown.vim
│  ├──  qf.vim
│  ├──  text.vim
│  ├──  txt.vim
│  └──  vim.vim
└──  lua
   └──  young
│     ├──  autocmd/
│     │  ├──  core.lua
│     │  └──  init.lua
│     ├──  cfg/
│     │  ├──  global.lua
│     │  ├──  init.lua
│     │  ├──  option.lua
│     │  ├──  quickfix.lua
│     │  └──  tabline.lua
│     ├──  gui/
│     │  ├──  firenvim.lua
│     │  ├──  font.lua
│     │  ├──  fvim.lua
│     │  ├──  goneovim.lua
│     │  ├──  init.lua
│     │  ├──  map.lua
│     │  ├──  neovide.lua
│     │  ├──  nvim_qt.lua
│     │  ├──  nvui.lua
│     │  ├──  transparency.lua
│     │  └──  vscode.lua
│     ├──  key/
│     │  ├──  init.lua
│     │  ├──  leader_normal.lua
│     │  ├──  leader_visual.lua
│     │  ├──  normal.lua
│     │  ├──  visual.lua
│     │  └──  which_key.lua
│     ├──  lang/
│     │  ├──  java.lua
│     │  ├──  java_.lua
│     │  └──  python.lua
│     ├──  lsp/
│     │  ├──  null_ls/
│     │  │  └──  linters.lua
│     │  ├──  providers/
│     │  │  ├──  clangd.lua
│     │  │  ├──  jdtls.lua
│     │  │  ├──  jsonls.lua
│     │  │  ├──  pylsp.lua
│     │  │  ├──  pyright.lua
│     │  │  ├──  sumneko_lua.lua
│     │  │  └──  yamlls.lua
│     │  ├──  common.lua
│     │  ├──  config.lua
│     │  ├──  handler.lua
│     │  ├──  init.lua
│     │  ├──  installer.lua
│     │  ├──  misc.lua
│     │  └──  null_ls.lua
│     ├──  mod/
│     │  ├──  alpha/
│     │  │  ├──  init.lua
│     │  │  └──  screen.lua
│     │  ├──  feline/
│     │  │  ├──  init.lua
│     │  │  ├──  nv_ide.lua
│     │  │  └──  nvchad.lua
│     │  ├──  galaxyline/
│     │  │  └──  init.lua
│     │  ├──  lualine/
│     │  │  ├──  theme/
│     │  │  │  └──  vscode.lua
│     │  │  ├──  apl.lua
│     │  │  ├──  bubbles.lua
│     │  │  ├──  evil.lua
│     │  │  ├──  evil_v.lua
│     │  │  ├──  init.lua
│     │  │  └──  slanted.lua
│     │  ├──  telescope/
│     │  │  ├──  actions.lua
│     │  │  ├──  finder.lua
│     │  │  ├──  init.lua
│     │  │  └──  view.lua
│     │  ├──  asterisk.lua
│     │  ├──  autopairs.lua
│     │  ├──  barbar.lua
│     │  ├──  bqf.lua
│     │  ├──  bufferline.lua
│     │  ├──  cinnamon.lua
│     │  ├──  cmp.lua
│     │  ├──  colorizer.lua
│     │  ├──  comment.lua
│     │  ├──  copilot.lua
│     │  ├──  dial.lua
│     │  ├──  easy_align.lua
│     │  ├──  fidget.lua
│     │  ├──  filetype.lua
│     │  ├──  fine_cmd.lua
│     │  ├──  fzf.lua
│     │  ├──  git_conflict.lua
│     │  ├──  gitlinker.lua
│     │  ├──  gitsigns.lua
│     │  ├──  gps.lua
│     │  ├──  hop.lua
│     │  ├──  illuminate.lua
│     │  ├──  indent_blankline.lua
│     │  ├──  jabs.lua
│     │  ├──  lightbulb.lua
│     │  ├──  lightspeed.lua
│     │  ├──  lir.lua
│     │  ├──  lsp_lines.lua
│     │  ├──  lsp_signature.lua
│     │  ├──  matchup.lua
│     │  ├──  minimap.lua
│     │  ├──  neoclip.lua
│     │  ├──  neorg.lua
│     │  ├──  neoscroll.lua
│     │  ├──  notify.lua
│     │  ├──  nvim_tree.lua
│     │  ├──  package_info.lua
│     │  ├──  persistence.lua
│     │  ├──  project.lua
│     │  ├──  rest.lua
│     │  ├──  scrollview.lua
│     │  ├──  searchbox.lua
│     │  ├──  session_manager.lua
│     │  ├──  smart_splits.lua
│     │  ├──  specs.lua
│     │  ├──  spectre.lua
│     │  ├──  tabline.lua
│     │  ├──  todo_comments.lua
│     │  ├──  toggleterm.lua
│     │  ├──  treesitter.lua
│     │  ├──  trouble.lua
│     │  ├──  wilder.lua
│     │  ├──  window_picker.lua
│     │  ├──  yabs.lua
│     │  ├──  zen.lua
│     │  └──  ZFVimIM.lua
│     ├──  tool/
│     │  ├──  blame.lua
│     │  ├──  demo.lua
│     │  ├──  init.lua
│     │  └──  setup.lua
│     ├──  util/
│     │  ├──  init.lua
│     │  └──  jsonify.lua
│     ├──  init.lua
│     ├──  packer.lua
│     ├──  packer_compiled.lua
│     └──  plugins.lua
├──  plugin/
│  ├──  abbr.vim
│  ├──  autocmd.lua
│  ├──  func.vim
│  ├──  helper.vim
│  ├──  mappings.lua
│  └──  vim-ripgrep.vim

TODO

see todo

Acknowledge

see reference

About

One editor to roll them all. (GotoDef FindRef Completion Snippet Format Lint Refactor Test Debug Repl Task)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages