Skip to content

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages