Skip to content

weihongbin1/xx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LunarVim Demo

aa

$\underline{内容}$

Install In One Command!

Make sure you have the newest version of Neovim (0.5).

#@startdot

digraph demo {
    label="示例"
    bgcolor="beige"

    node[color="grey"]

    father[label="爸爸", shape="box"]
    mother[label="妈妈", shape="box"]
    brother[label="哥哥", shape="circle"]
    sister[label="姐姐", shape="circle"]
    node[color="#FF6347"]
    strangers[label="路人"]

    edge[color="#FF6347"]

    father->mother[label="夫妻", dir="both"]
    father->brother[label="父子"]
    father->sister[label="父子"]
    father->我[label="父子"]

    mother->{brother,sister,我}[label="母子"]

    {rank=same; father, mother}
    {rank=same; brother,sister,我}
}

#@enddot
bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/lunarvim/master/utils/installer/install.sh)

If you help to develop Lunarvim, you can install a specific branch branch directly

LVBRANCH=rolling bash <(curl -s https://raw.githubusercontent.com/ChristianChiarulli/lunarvim/rolling/utils/installer/install.sh)

If your installation is stuck on Ok to remove? [y/N], it means there are some leftovers,
you can run the script with --overwrite but be warned this will remove the following folders:

  • ~/.config/nvim
  • ~/.cache/nvim
  • ~/.local/share/nvim/site/pack/packer
curl -s https://raw.githubusercontent.com/ChristianChiarulli/lunarvim/rolling/utils/installer/install.sh | LVBRANCH=rolling bash -s -- --overwrite

then run nvim and wait for treesitter to finish the installation

Installing LSP for your language

Just enter :LspInstall followed by <TAB> to see your options

NOTE I recommend installing lua for autocomplete in lv-config.lua

Configuration file

To activate other plugins and language features use the lv-config.lua file provided in the nvim folder (~/.config/nvim/lv-config.lua)

Example:

-- O is the global options object

-- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT
-- general
-- O.format_on_save = false -- to disbale formatting on save
-- O.lint_on_save = false -- to disable formatting on save
O.completion.autocomplete = true
O.default_options.relativenumber = true
O.colorscheme = 'spacegray'
O.default_options.timeoutlen = 100

-- keymappings 
O.keys.leader_key = "space"
-- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them
O.keys.normal_mode = {
    -- Page down/up
  {'[d', '<PageUp>'},
  {']d', '<PageDown>'},

  -- Navigate buffers
  {'<Tab>', ':bnext<CR>'},
  {'<S-Tab>', ':bprevious<CR>'},
}
-- if you just want to augment the existing ones then use the utility function
require("lv-utils").add_keymap_insert_mode({ silent = true }, {
  { "<C-s>", ":w<cr>" },
  { "<C-c>", "<ESC>" }
})

-- you can also use the native vim way directly
vim.api.nvim_set_keymap("i", "<C-Space>", "compe#complete()", { noremap = true, silent = true, expr = true })

-- After changing plugin config it is recommended to run :PackerCompile
O.plugin.dashboard.active = true
O.plugin.terminal.active = true
O.plugin.zen.active = true

-- if you don't want all the parsers change this to a table of the ones you want
O.treesitter.ensure_installed = "all"
O.treesitter.ignore_install = {"haskell"}
O.treesitter.highlight.enabled = true

-- lua
O.lang.lua.autoformat = false
O.lang.lua.formatter = 'lua-format'

-- javascript
O.lang.tsserver.formatter = 'prettier'
O.lang.tsserver.linter = nil
O.lang.tsserver.autoformat = true

-- python
O.lang.python.diagnostics.virtual_text = true
O.lang.python.analysis.use_library_code_types = true
-- to change default formatter from yapf to black
-- O.lang.python.formatter.exe = "black"
-- O.lang.python.formatter.args = {"-"}
-- To change enabled linters
-- https://github.com/mfussenegger/nvim-lint#available-linters
-- O.lang.python.linters = { "flake8", "pylint", "mypy", ... }

-- go
-- to change default formatter from gofmt to goimports
-- O.lang.formatter.go.exe = "goimports"

-- Additional Plugins
-- O.user_plugins = {
--   {"folke/tokyonight.nvim"},
--   {
--     "ray-x/lsp_signature.nvim",
--     config = function()
--       require"lsp_signature".on_attach()
--     end,
--     event = "InsertEnter"
--   },
-- }

-- }

-- Autocommands (https://neovim.io/doc/user/autocmd.html)
-- O.user_autocommands = {{ "BufWinEnter", "*", "echo \"hi again\""}}

-- Additional Leader bindings for WhichKey
-- O.user_which_key = {
--   A = {
--     name = "+Custom Leader Keys",
--     a = { "<cmd>echo 'first custom command'<cr>", "Description for a" },
--     b = { "<cmd>echo 'second custom command'<cr>", "Description for b" },
--   },
-- }

-- To link your init.vim (until you find Lua replacements)
-- vim.cmd('source ' .. CONFIG_PATH .. '/lua/lv-user/init.vim')

In case you want to see all the settings inside LunarVim, run the following:

cd ~/.config/nvim
nvim --headless +'lua require("lv-utils").generate_settings()' +qa && sort -o lv-settings.lua{,}

and then inspect ~/.config/nvim/lv-settings.lua file

Updating LunarVim

In order to update you should be aware of three things Plugins, LunarVim and Neovim

To update plugins:

:PackerUpdate

To update LunarVim:

cd ~/.config/nvim && git pull

To update Neovim use your package manager

Project Goals

  1. Provide basic functionalities required from an IDE
    • LSP
    • Formatting/Linting
    • Debugging
    • Treesitter
    • Colorschemes
  2. Be as fast and lean as possible
    • Lazy loading
    • Not a single extra plugin
    • User configurable lang/feature enable/disable
  3. Provide a simple and easy way for users to share their own configuration or use others.
  4. Hot reload of configurations
    • Hot install of lsp/treesitter/formatter required upon openning a filetype for the first time
  5. Provide a stable & maintainable error free configuration layer over neovim
    • With the help of the community behind it
    • Github workflow testing
    • Freezing plugin versions
  6. Provide detailed documentation
    • Video series on how to configure LunarVim as an IDE for each lang
  7. Valhalla

Resources

Testimonials

"I have the processing power of a potato with 4 gb of ram and LunarVim runs perfectly."

  • @juanCortelezzi, LunarVim user.

"My minimal config with a good amount less code than LunarVim loads 40ms slower. Time to switch."

  • @mvllow, Potential LunarVim user.

Lua

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published