lf-araujo / lvim

Bloated LunarVim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bloated LunarVim

Do not use as is, use it as a source of inspiration.

I've customized my ZSH/Tmux/Alacritty too much, so it might not work properly πŸ˜…

141789968-ed61958c-9154-4774-b2e2-dfabe48d9660

Table of Contents (πŸ”Ž Click to expand/collapse)

Theme

Themes are automatically changed based on time of the day:

Theme Time of the day
rose-pine [1am, 9am)
tokyonight [9am, 5pm)
doom-one [5pm, 9pm)
kanagawa [9pm, 11:59pm), [0am, 1am]

You can change this in plugins.lua and lualine.lua

Customization

Customization (πŸ”Ž Click to expand/collapse)
  • I'm on the rolling branch of LunarVim and i'm using neovim 0.7 head
  • Do not use as is, too much bloated! Also do not use on a potato PC!!
  • i have a auto command to disable syntax,etc when you open files larger than 1MB
  • if you don't want to use harpoon, disable it
    • lvim.builtin.harpoon = { active = false }
  • if you want to try out GitHub copilot, change the following
    • lvim.builtin.sell_your_soul_to_devil = true
  • I'm using a custom dashboard, use the default LunarVim one if you like it better
    • lvim.builtin.fancy_dashboard = { active = false }
  • I use a custom lualine disable it if you don't like it
    • lvim.builtin.fancy_statusline = { active = false }
  • I'm using bufferline instead of barbar, if you don't like it, disable it
    • lvim.builtin.fancy_bufferline = { active = false }
  • You can use the fancy wild menu if you want, make sure to do a :UpdateRemotePlugins
    • lvim.builtin.fancy_wild_menu = { active = true }
  • You can use the diffview plugin instead of normal gitsigns diff
    • lvim.builtin.fancy_diff = { active = true }
  • if you want to use debugging, change the following line to true:
    • lvim.builtin.dap.active = true
  • sometimes instead of saving you jump trough jumplist 😒 just disable nvim-lastplace
    • lvim.builtin.lastplace = { active = false }
  • sometimes compe-tabnine doesn't play nice, you can disable it :)
    • lvim.builtin.tabnine = { active = false }
  • if you don't need testing, just disable it
    • lvim.builtin.test_runner = { active = false }
  • if you don't want cheat.sh integration, disable it
    • lvim.builtin.cheat = { active = false }
  • if you don't want the SQL integration, disable it
    • lvim.builtin.sql_integration = { active = false }
  • if you don't like smooth scrolling, disable it
    • lvim.builtin.neoscroll = { active = false }
  • if you want an obvious focused window, and you don't get seizures from it
    • lvim.builtin.nonumber_unfocus = true
  • choose between hop and lightspeed as your favorite motion provider
    • lvim.builtin.motion_provider = "hop"
  • if you don't need CSV support, disable it
    • lvim.builtin.csv_support = false
  • if you want to use the cool make and run system, enable it
    • lvim.builtin.async_tasks = { active = true }
  • If you wanna see the issues, remove lvim.lsp.diagnostics.virtual_text = false
  • I'm using skim for latex stuff, change it to zathura if you are on linux
  • Using tailwinds CSS for markdown, disable it if you want

Install

Prerequisites (πŸ”Ž Click to expand/collapse)

Prerequisites

  brew install neovim --nightly
curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh
cargo install ripgrep fd-find
  • NodeJS >= v16.13.0 most language servers need this
brew install node
# install LunarVim
mv ~/.config/lvim ~/.config/lvim_backup
git clone https://github.com/abzcoding/lvim.git ~/.config/lvim
lvim +LvimUpdate +LvimCacheReset +q
lvim # run :PackerSync

Recommended Fonts

On macOS with Homebrew, choose one of the Nerd Fonts, for example, here are some popular fonts:

brew tap homebrew/cask-fonts
brew search nerd-font
brew install --cask font-fira-code-nerd-font
brew install --cask font-victor-mono-nerd-font
brew install --cask font-iosevka-nerd-font-mono
brew install --cask font-hack-nerd-font
Other Stuff (πŸ”Ž Click to expand/collapse)

Language-Server Protocol (LSP)

To leverage LSP auto-completions and other functionalities, after you open a file in Neovim, run :LspInstall <server> to use nvim-lsp-installer installation feature. Use Tab to list available servers.

Here are some common LSP server installations:

  • :LspInstall html cssls jsonls yamlls
  • :LspInstall gopls
  • :LspInstall pylsp
  • :LspInstall bashls vimls sumneko_lua
  • :LspInstall diagnosticls
  • and more…

Upgrade

cd ~/.config/lvim
git pull
lvim # run :PackerSync

Recommended Linters

brew install luarocks
luarocks install luacheck  # if you want to use luacheck
cargo install selene  # if you want to use selene instead of luacheck
brew install hadolint  # if you want to lint dockerfiles
pip install vim-vint  # for vim linting
# install llvm and clang_format for clang stuff
npm install -g @fsouza/prettierd # if you want to use prettierd
pip install yapf flake8 black  # for python stuff
# if you want to use the markdown thingy
brew install vale markdownlint-cli
cp -r ~/.config/lvim/.vale ~/.config/vale
# fix the address inside .vale.ini
cp ~/.config/lvim/vale_config.ini ~/.vale.ini
# if you want the latex stuff
# brew install --cask mactex-no-gui # for mac
# or install zathura and chktex on linux

In case you want a better tex support in mac, check this out

if you want the custom gostructhelper, first get the pkg:

cd /tmp
git clone https://github.com/vanhtuan0409/gostructhelper.git
cd gostructhelper/cmds/gostructhelper
go build -o /usr/local/bin/gostructhelper && chmod 0755 /usr/local/bin/gostructhelper

Collaborative Editing

The default is to serve localhost only, on port 8080. For a more advanced (remote server) overview see Deploy a server

Server side

  • :InstantStartServer [host] [port] : Start the server using
    • :InstantStartSingle [host] [port] : This only shares the current buffer.
    • :InstantStartSession [host] [port] :This shares all opened (and newly opened) buffers with the other clients

Client side

  • let g:instant_username="sth" : Set your preferred username.
    • :InstantJoinSingle [host] [port] : Use this command if another client already initiated a single share.
    • :InstantJoinSession [host] [port] : Use this command if another client already initiated a session share

Screenshot

Screenshots (πŸ”Ž Click to expand/collapse) Screen Shot 2021-10-20 at 1 09 24 PM

BufferLine

Screen Shot 2021-10-18 at 5 44 20 PM

StatusLine

Screen Shot 2021-10-18 at 5 45 16 PM

Dashboard

Screen Shot 2021-10-18 at 5 40 16 PM Screen Shot 2021-10-18 at 5 51 50 PM

lsp_signature

lsp_signature_2 lsp_signature

Tabnine

tabnine

Lang Server

completion Screen Shot 2021-10-18 at 5 43 22 PM

diagnostics using gl Screen_Shot_2021-07-31_at_7 54 52_PM

code_actions using ga Screen Shot 2021-10-18 at 6 25 58 PM

code_lens and inlay_hints when supported by lang server Screen Shot 2021-10-18 at 6 26 47 PM

references in qf Screen Shot 2021-10-18 at 6 31 03 PM

treesitter backed folding Screen Shot 2021-10-18 at 6 05 29 PM

peek using gp

Screen Shot 2021-10-18 at 6 33 06 PM

rename using <leader>lr

Screen Shot 2021-11-04 at 3 54 15 PM

Builtin Terminal

Screen Shot 2021-10-18 at 6 07 13 PM

Test

Screen Shot 2021-10-18 at 6 13 22 PM

ETC

k8s help

Screen Shot 2021-10-18 at 6 23 21 PM

lazy git integration

Screen Shot 2021-10-18 at 6 27 45 PM

zen mode

Screen Shot 2021-10-18 at 6 30 00 PM

Cheat.sh integration

use <leader>? Screen Shot 2021-10-18 at 6 02 31 PM

Screen Shot 2021-10-18 at 6 01 34 PM

Symbols Outline

Screen Shot 2021-10-18 at 6 03 57 PM

Plugins Included

Plugins (πŸ”Ž Click to expand/collapse)

Optional Plugins

Structure

Structure (πŸ”Ž Click to expand/collapse)

Custom Key-mappings

Note that,

  • Leader key set as Space
Key-mappings (πŸ”Ž Click to expand/collapse) Modes: 𝐍=normal 𝐕=visual 𝐒=select 𝐈=insert 𝐂=command

UI

Key Mode Action Plugin or Mapping
Space+e 𝐍 Open file tree NvimTree
Space+o 𝐍 Open symbols Symbols-outline
Space+f 𝐍 Open file finder Telescope
Space+h 𝐍 Remove highlight nohlsearch<
Space+/ 𝐍 Toggle comment Comment.nvim
Space+? 𝐍 Open cheats cheat.sh
Space+' 𝐍 Open marks which-key marks
Space+z 𝐍 Zen mode zen-mode.nvim
Space+P 𝐍 Projects project.nvim
Ctrl+s 𝐈 show signature help vim.lsp.buf.signature_help()
Alt+s 𝐈 snippet selection Telescope luasnip extension
Space+C 𝐍 Command Palette Telescope command_palette

Motion

Key Mode Action Plugin or Mapping
f 𝐍 find next character HopChar1CurrentLineAC or Lightspeed_f
F 𝐍 find previous character HopChar1CurrentLineBC or Lightspeed_F
s 𝐍 find character HopChar2 or Lightspeed_s
S 𝐍 find word HopWord or Lightspeed_S
Alt+a 𝐈 select all ggVG
Alt+a 𝐍 increment number C-A
Alt+x 𝐍 decrement number C-X

LSP

Key Mode Action
Tab / Shift-Tab 𝐈 Navigate completion-menu
Enter 𝐈 Select completion or expand snippet
Upor Down 𝐈 Movement in completion pop-up
]+d 𝐍 Next diagnostic
[+d 𝐍 Previous diagnostic
Space+l+j or Space+l+k 𝐍 Next/previous LSP diagnostic
Space+l+r 𝐍 replace current word in project
Ctrl+e 𝐈 Close pop-up
Tab / Shift-Tab 𝐈 𝐒 Navigate snippet placeholders
Space+l 𝐍 keybindings for lsp
g+a 𝐍 code actions
g+A 𝐍 codelens actions
g+d 𝐍 goto definition
g+D 𝐍 goto declaration
g+I 𝐍 goto implementation
g+p 𝐍 peek implementation
g+r 𝐍 goto references
g+s 𝐍 show signature help

Plugin: AsyncTasks

Key Mode Action
Space+m+f 𝐍 Build File
Space+m+p 𝐍 Build Project
Space+m+e 𝐍 Edit Tasks
Space+m+l 𝐍 List Tasks
Space+r+f 𝐍 Run File
Space+r+p 𝐍 Run Project

Plugin: Gitsigns

Key Mode Action
Space+g+j or Space+g+k 𝐍 Next/previous Git hunk
Space+g+p 𝐍 Preview hunk
Space+g+l 𝐍 Blame line
Space+g+s 𝐍 𝐕 Stage hunk
Space+g+u 𝐍 Undo stage hunk
Space+g+R 𝐍 𝐕 Reset hunk

Plugin: LazyGit

Key Mode Action
Space+g+g 𝐍 Open lazy git UI

Plugin: Telescope

Key Mode Action
Space+f 𝐍 File search
Space+P 𝐍 Project search
Space+s+s 𝐍 Grep search
Space+s+f 𝐍 Telescope find_files
Space+s+F 𝐍 Telescope file_browser
Space+F+l 𝐍 Reopen last search
Space+b+f 𝐍 Buffers
Space+s+c 𝐍 Colorschemes
Space+s+C 𝐍 Command history
Space+s+h 𝐍 Find help
Space+s+k 𝐍 Keymap search
Space+s+M 𝐍 Man Pages search
Space+s+r 𝐍 Register search
Space+s+t 𝐕 Grep string under cursor
Space+s+t 𝐍 Grep raw
Space+F+b 𝐍 Builtin search
Space+F+f 𝐍 Current buffer search
Space+F+g 𝐍 Git files search
Space+F+i 𝐍 Installed plugins
Space+F+p 𝐍 Project search
Space+F+i 𝐍 Installed plugins
in Telescope window
CR 𝐈 𝐍 Multi/Single Open
Ctrl+c 𝐈 𝐍 Exit telescope
Ctrl+v 𝐈 𝐍 Open in a vertical split
Ctrl+s 𝐈 𝐍 Open in a split
Ctrl+t 𝐈 𝐍 Open in a tab
Ctrl+b 𝐈 Go back in Command Palette
Tab 𝐈 𝐍 Toggle Selection + Next
Shift+Tab 𝐈 𝐍 Toggle Selection + Prev

Plugin: Harpoon

Key Mode Action
Space+Space 𝐍 show harpoon shortlist
Space+a 𝐍 add file to shortlist
Space+1 𝐍 jump to first file on shortlist
Space+2 𝐍 jump to second file on shortlist
Space+3 𝐍 jump to third file on shortlist
Space+4 𝐍 jump to forth file on shortlist

Plugin: Neogen

Key Mode Action
Space+n+c 𝐍 Class documentation
Space+n+f 𝐍 Function documentation
Space+n+t 𝐍 Type documentation
Space+n+F 𝐍 File documentation

Plugin: Persistence

Key Mode Action
Space+q+d 𝐍 quit without saving session
Space+q+l 𝐍 restore last session
Space+q+s 𝐍 restore last session from current dir

Plugin: Bufferline

Key Mode Action
Space+b+f 𝐍 find buffer
Space+b+b 𝐍 toggle buffer groups
Space+b+p 𝐍 pick buffer
Space+b+1 𝐍 goto buffer 1

Plugin: Trouble

Key Mode Action
Space+T+d 𝐍 diagnostics
Space+T+f 𝐍 definitions
Space+T+r 𝐍 references
Space+T+t 𝐍 todo
Space+T+w 𝐍 workspace diagnostics

Plugin: Ultest

Key Mode Action
Space+t+f 𝐍 run all tests in a file
Space+t+n 𝐍 only run nearest test
Space+t+s 𝐍 open test summary

Plugin: Spectre

Key Mode Action
Space+R+p 𝐍 replace word in project
Space+R+w 𝐍 replace visually selected word
Space+R+f 𝐍 replace word in current buffer

About

Bloated LunarVim

License:MIT License


Languages

Language:Lua 82.0%Language:Vim Script 18.0%