- Add or remove plugins, rewrite all plugins
- Add or remove settings, rewrite all settings
- Dynamic LSP activation
- Dynamic debugging activation - Vimspector or Dap
- By default - 63 plugins
- Loading time - 060.260
YouTube channel
Dashboard
WhichKey
CtrlSpace
NvimTree
Trouble
SymbolsOutline
AnyJump
Spectre
Snap
GitSigns
Fugitive
GitBlame
UndoTree
Floaterm
DadbodUI
Goyo
- Clone repository
git clone https://github.com/lvim-tech/lvim.git ~/.config/nvim
- Export path to bin folder in your shell (
.bashrc
,.zshrc
etc)
export PATH="$HOME/.config/nvim/bin:$PATH"
galaxyline.nvim (requires nvim-web-devicons)
nvim-tree.lua (requires nvim-web-devicons)
goyo.vim (requires limelight.vim)
nvim-spectre (requires popup.nvim | plenary.nvim)
gitsigns.nvim (requires plenary.nvim)
neogit (requires plenary.nvim)
nvim-treesitter (requires playground)
lsp-trouble.nvim (requires nvim-web-devicons)
nvim-dap (requires nvim-dap-ui)
nvim-cmp (requires cmp-nvim-lsp | cmp-vsnip | cmp-buffer | cmp-path)
vim-vsnip (requires vim-vsnip-integ | friendly-snippets)
vim-dadbod-ui (requires vim-dadbod-ui | vim-dadbod-completion)
nvim-whichkey-setup.lua (requires vim-which-key)
Key | Action | Description |
---|---|---|
<F11> |
:LvimHelper<CR> |
LvimHelper |
<C-space> |
:CtrlSpace<CR> |
CtrlSpace |
<Esc> |
<Esc>:noh<CR> |
Remove highlight after search |
<F1> |
:FloatermToggle<CR> |
Floaterm toggle |
<F2> |
:FloatermPrev<CR> |
Floaterm prev |
<F3> |
:FloatermNext<CR> |
Floaterm next |
<F4> |
:FloatermNew<CR> |
Floaterm new |
<F12> |
:FloatermKill<CR> |
Floaterm kill |
<F5> |
:UndotreeToggle<CR> |
UndoTree toggle |
<C-n> |
:e %:h/filename<CR> |
Create new file |
<C-s> |
:w<CR> |
Save |
<C-a> |
:wa<CR> |
Save all |
<C-e> |
:qa!<CR> |
Close all, exit nvim |
<C-x> |
<C-w>c |
Close current window |
<C-o> |
<C-w>o |
Close other windows |
<C-d> |
:bdelete<CR> |
Bdelete |
<C-h> |
<C-w>h |
Move to window left |
<C-l> |
<C-w>l |
Move to window right |
<C-j> |
<C-w>j |
Move to window down |
<C-k> |
<C-w>k |
Move to window up |
<C-Left> |
:vertical resize -2<CR> |
Resize width - |
<C-Right> |
:vertical resize +2<CR> |
Resize width + |
<C-Up> |
:resize -2<CR> |
Resize height - |
<C-Down> |
:resize +2<CR> |
Resize height + |
<S-x> |
:NvimTreeToggle<CR> |
NvimTree explorer |
<S-u> |
:Vifm<CR> |
Vifm explorer |
<S-l> |
:FloatermNew lazygit<CR> |
Lazygit |
<S-m> |
:MarkdownPreviewToggle<CR> |
Markdown preview toggle |
<A-j> |
:AnyJump<CR> |
Any jump |
<A-v> |
:SymbolsOutline<CR> |
Symbols outline |
<A-[> |
:foldopen<CR> |
Fold open |
<A-]> |
:foldclose<CR> |
Fold close |
<A-.> |
:BookmarkToggle<CR> |
Bookmark toggle |
<A-,> |
:Neoformat<CR> |
Format code |
<A-s> |
:Spectre<CR> |
Replace in multiple files |
<A-/> |
:CommentToggle<CR> |
Comment toggle |
<A-f> |
:LspFormatting<CR> |
Lsp format code |
<A-t> |
:LspCodeAction<CR> |
Lsp code action |
<A-g> |
:LspReferences<CR> |
Lsp references |
<A-d> |
:LspDeclaration<CR> |
Lsp declaration |
<A-p> |
:LspDefinition<CR> |
Lsp definition |
<A-h> |
:LspHover<CR> |
Lsp hover |
<A-r> |
:LspRename<CR> |
Lsp rename |
<A-n> |
:LspGoToNext<CR> |
Lsp go to next |
<A-p> |
:LspGoToPrev<CR> |
Lsp go to prev |
<A-e> |
:LspTroubleToggle<CR> |
Lsp trouble toggle |
Key | Action | Description |
---|---|---|
< |
<gv |
Tab left |
> |
>gv |
Tab right |
* |
:<Esc>/\\%V |
Visual search / |
# |
:<Esc>?\\%V |
Visual search ? |
K |
:move \'<-2<CR>gv-gv |
Move up |
J |
:move \'>+1<CR>gv-gv |
Move down |
<A-j> |
:AnyJumpVisual<CR> |
Any jump visual |
<A-/> |
:CommentToggle<CR> |
Comment toggle |
:Snap<name-of-command>
IMPORTANT: All external programs are in the sdk home folder (
~/sdk
)
:LspInstall bash
:LspInstall cpp
LspInstall csharp
Export path to dotnet
in your shell (.bashrc
, .zshrc
etc)
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
:LspInstall css
- Download Flutter (includes dart) from here
- Copy folder
flutter
to~/sdk
- Export paths to
flutter
anddart
in your shell (.bashrc
,.zshrc
etc)
export PATH="$PATH:$HOME/sdk/flutter/bin"
export PATH="$PATH:$HOME/sdk/flutter/bin/cache/dart-sdk/bin"
Upgrade flutter and dart from command line:
flutter upgrade
:LspInstall dockerfile
:LspInstall elixir
:LspInstall go
:LspInstall graphql
:LspInstall html
:LspInstall java
:LspInstall typescript
:LspInstall jason
:LspInstall latex
:LspInstall lua
:LspInstall php
:LspInstall python
:LspInstall ruby
Install solargraph
with gem
gem install solargraph
:LspInstall rust
Install Rust with Rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
:LspInstall svelte
:LspInstall vim
:LspInstall yaml
All included plugins are in this file by default
You can modify plugins from this file
local modules = {}
modules['kevinhwang91/rnvimr'] = false
return modules
local modules = {}
modules['kevinhwang91/rnvimr'] = {
-- Your code
}
return modules
local modules = {}
modules['sheerun/vim-polyglot'] = {
-- your code
}
return modules
IMPORTANT: After any changes run
:PackerSync
and restart nvim
All settings are in this file
You can modify settings from this file
local modules = {}
configs['events'] = false
return modules
local modules = {}
configs['events'] = function()
-- your code
end
return modules
local modules = {}
configs['any-name'] = function()
-- your code
end
return modules
IMPORTANT: After any changes run
:PackerSync
and restart nvim
You can use Vimpector
or DAP (Debug Adapter Protocol)
IMPORTANT: Before using Vimspector, you need to activate it
:VimspectorInit
IMPORTANT: Before using Vimspector, install all gadgets
:VimspectorInstall --all
You can generate .vimspector.json
file for your current project with script from bin folder
vsconfig
Key | Action | Description |
---|---|---|
<A-1> |
<Plug>VimspectorToggleBreakpoint |
Toggle breakpoint |
<A-2> |
<Plug>VimspectorContinue |
Start / continue |
<A-3> |
<Plug>VimspectorStop |
Stop |
<A-4> |
<Plug>VimpectorRestart |
Restart |
<A-5> |
<Plug>VimspectorStepOver |
Step over |
<A-6> |
<Plug>VimspectorStepInto |
Step into |
<A-7> |
<Plug>VimspectorStepOut |
Step out |
<A-8> |
<Plug>VimspectorAddFunctionBreakpoint |
Function breakpoint |
<A-9> |
<Plug>VimspectorRunToCursor |
Run to cursor |
<A-0> |
:VimspectorReset<CR> |
Reset |
IMPORTANT: Before using DAP, you need to activate it
:DapInit
- vscode-lldb (for
cpp
andrust
) - delve (for
go
) - debugpy (for
python
) - vscode-node-debug2 (for
javascript
andtypescript
)
IMPORTANT: vscode-node-debug2 must be installed in
sdk
folder (~/sdk/vscode-node-debug2
)
IMPORTANT: Command
:VimspectorInstall --all
will installvscode-lldb
anddebugpy
:VimspectorInstall --all
IMPORTANT: DAP configuration for
python
usepython
from pyenv. You need to install apyenv
and use apython
frompyenv
. Path is:~/.pyenv/shims/python
- cpp
- dart
- go
- java
- javascript / typescript
- python
- rust
Key | Action | Description |
---|---|---|
<A-1> |
<Cmd>DapToggleBreakpoint<CR> |
Toggle breakpoint |
<A-2> |
<Cmd>DapStart<CR> |
Start / continue |
<A-3> |
<Cmd>DapStop<CR> |
Stop |
<A-4> |
<Cmd>DapRestart<CR> |
Restart |
<A-5> |
<Cmd>DapStepOver<CR> |
Step over |
<A-6> |
<Cmd>DapStepInto<CR> |
Step into |
<A-7> |
<Cmd>DapStepOut<CR> |
Step out |
<A-8> |
<Cmd>DapPause<CR> |
Pause |
<A-9> |
<Cmd>DapToggleRepl<CR> |
Toggle repl |
<A-0> |
<Cmd>DapGetSession<CR> |
Get session |
How use:
:Spectre
--- OR ---
Use keymap <A-s>
IMPORTANT: LVIM use Neoformat by default. For more info use this link
IMPORTANT: If you have installed formatters then Neoformat not need of settings
How use:
:Neoformat
--- OR ---
Use keymap <A-,>
Just add custom function to lua/configs/custom/init.lua
local configs = {}
local funcs = require "core.funcs"
configs["custom_events"] = function()
funcs.augroups({
custom_bufs = {
{"BufWritePre", "*.go", ":Neoformat"},
{"BufWritePre", "*.py", ":Neoformat"},
{"BufWritePre", "*.rs", ":Neoformat"},
{"BufWritePre", "*.dart", ":Neoformat"},
{"BufWritePre", "*.cpp", ":Neoformat"},
{"BufWritePre", "*.js", ":Neoformat"},
{"BufWritePre", "*.ts", ":Neoformat"}
}
})
end
return configs
:SudaWrite