diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 148 |
1 files changed, 30 insertions, 118 deletions
@@ -16,83 +16,45 @@ <a href="https://twitter.com/intent/follow?screen_name=chrisatmachine"> <img src="https://img.shields.io/twitter/follow/chrisatmachine?style=social&logo=twitter" alt="follow on Twitter"> </a> -</p> +</p> </div> -## Install In One Command! - -Make sure you have the newest version of Neovim (0.5). +## Documentation -``` bash -bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) -``` +You can find all the documentation for LunarVim at [lunarvim.org](https://www.lunarvim.org) -### Customizing the installation - -The following options are supported by setting environment variables: -- `"$LV_REMOTE"` Select a different LunarVim remote [default: 'lunarvim/lunarvim.git'] -- `"$LV_BRANCH"` Select LunarVim's branch [default: 'rolling'] -- `"$INSTALL_PREFIX"` Select LunarVim's install prefix [default: `'$HOME/.local'`] -- `"$LUNARVIM_RUNTIME_DIR"` Select LunarVim's runtime directory [default: `'$HOME/.local/share/lunarvim'`] -- `"$LUNARVIM_CONFIG_DIR"` Select LunarVim's configuration directory [default: `'$HOME/.config/lvim'`] - -Putting it all together +## Install In One Command! -``` bash -curl -LSs https://raw.githubusercontent.com/lunarvim/lunarvim/rolling/utils/installer/install.sh -O install.sh -INSTALL_PREFIX=/tmp/t1 LUNARVIM_CONFIG_DIR=/tmp/t2 LUNARVIM_RUNTIME_DIR=/tmp/t3 bash ./install.sh -``` +Make sure you have the release version of Neovim (0.5). -### BREAKING CHANGE on rolling and master branches -* The latest changes to LunarVim require you to [remove it completely](https://github.com/lunarvim/LunarVim/wiki/Uninstalling-LunarVim) before upgrading -* Going forward LunarVim will no longer reside in the nvim configuration folder. LunarVim has been moved to `~/.local/share/lunarvim`. -* To launch Lunarvim use the new `lvim` command. `nvim` will only launch standard neovim. -* Your personal configuration file (`config.lua`) can now be found in `~/.config/lvim`. You can initialize this folder as a git repository to track changes to your configuration files. -* If you want to keep launching LunarVim with the `nvim` command, add an alias entry to your shell's config file: `alias nvim=lvim`. To temporarily revert to the default `nvim` prefix it with a backslash `\nvim`. -* Many options formerly available in `config.lua` have been renamed. For details [look here](https://github.com/lunarvim/LunarVim/wiki/Breaking-changes-in-rolling) - -### Debugging LunarVim's configuration -* To turn on debugging add these settings `lvim.log.level = debug` and use `<leader>Ll` to see the options of viewing the logfiles -* You can also use install [lnav](https://github.com/tstack/lnav) and use it in a floating terminal. Make sure to set `lvim.builtin.terminal.active = true`. - -### Fixing installation problems -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: -- `~/.cache/nvim` -- `~/.config/nvim` #Removed only on Master Branch -- `~/.local/share/nvim/site/pack/packer` #Removed only on Master Branch -- `~/.local/share/lunarvim` #Removed only on Rolling Branch -- `~/.config/lvim` #Removed only on Rolling Branch ```bash -curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/rolling/utils/installer/install.sh | LVBRANCH=rolling bash -s -- --overwrite +bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) ``` -then run nvim and wait for treesitter to finish the installation +## Install Language support -## Installing LSP for your language +- Enter `:LspInstall` followed by `<TAB>` to see your options for LSP -Just enter `:LspInstall` followed by `<TAB>` to see your options +- Enter `:TSInstall` followed by `<TAB>` to see your options for syntax highlighting **NOTE** I recommend installing `lua` for autocomplete in `config.lua` -For the julia language server look [here](https://github.com/lunarvim/LunarVim/wiki/Enabling-a-language-server#julia-support) + + + ## 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`) in the master branch or (`~/.config/lvim/config.lua`) on rolling +To install plugins configure LunarVim use the `config.lua` located here: `~/.config/lvim/config.lua` Example: ```lua -- general lvim.format_on_save = true -lvim.lint_on_save = true -lvim.colorscheme = "spacegray" +lvim.colorscheme = "onedarker" -lvim.builtin.compe.autocomplete = true - --- keymappings [view all the defaults by pressing <leader>Lk] lvim.leader = "space" -- add your own keymapping lvim.keys.normal_mode["<C-s>"] = ":w<cr>" @@ -105,25 +67,16 @@ lvim.keys.normal_mode["<C-s>"] = ":w<cr>" -- Use which-key to add extra bindings with the leader-key prefix -- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" } --- lvim.builtin.which_key.mappings["t"] = { --- name = "+Trouble", --- r = { "<cmd>Trouble lsp_references<cr>", "References" }, --- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" }, --- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnosticss" }, --- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" }, --- l = { "<cmd>Trouble loclist<cr>", "LocationList" }, --- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnosticss" }, --- } - --- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile + +-- Configure builtin plugins lvim.builtin.dashboard.active = true lvim.builtin.terminal.active = true --- if you don't want all the parsers change this to a table of the ones you want +-- Treesitter parsers change this to a table of the languages you want i.e. {"java", "python", javascript} lvim.builtin.treesitter.ensure_installed = "maintained" lvim.builtin.treesitter.ignore_install = { "haskell" } -lvim.builtin.treesitter.highlight.enabled = true +-- Disable virtual text lvim.lsp.diagnostics.virtual_text = false -- set a formatter if you want to override the default lsp one (if it exists) @@ -148,74 +101,31 @@ lvim.plugins = { {"folke/tokyonight.nvim"}, { "ray-x/lsp_signature.nvim", config = function() require"lsp_signature".on_attach() end, - event = "InsertEnter" + event = "BufRead" } } - --- Autocommands (https://neovim.io/doc/user/autocmd.html) --- lvim.autocommands.custom_groups = { --- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" }, --- } - - ``` -In case you want to see all the settings inside LunarVim, run the following: - -```bash -cd /tmp -lvim --headless +'lua require("utils").generate_settings()' +qa && sort -o lv-settings.lua{,} -``` -and then inspect `/tmp/lv-settings.lua` file - ## Updating LunarVim -In order to update you should be aware of three things `Plugins`, `LunarVim` and `Neovim` +- inside LunarVim `:LvimUpdate` +- from the command-line `lvim +LvimUpdate +q` -To update plugins: +### Update the plugins -``` -:PackerUpdate -``` +- inside LunarVim `:PackerUpdate` -To update LunarVim: +## Breaking changes -```bash -cd ~/.local/share/lunarvim/lvim && git pull -:PackerSync -``` - -To update Neovim use your package manager or [compile from source](https://github.com/lunarvim/LunarVim/wiki/Installation#get-the-latest-version-of-neovim) - -## 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](https://github.com/LunarVim/LunarVimCommunity) way for users to share their own configuration or use others. -4. Hot reload of configurations - - Hot install of lsp/treesitter/formatter required upon opening 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 +- `lvim.lang.FOO.lsp` is no longer supported after #1584. + You can either use `:NlspConfig` for most of the settings you might need, or override the setup by adding an entry to `lvim.lsp.override = { "FOO" }`. ## Resources -- [YouTube](https://www.youtube.com/channel/UCS97tchJDq17Qms3cux8wcA) - - [Documentation](https://www.lunarvim.org) +- [YouTube](https://www.youtube.com/channel/UCS97tchJDq17Qms3cux8wcA) + - [Discord](https://discord.gg/Xb9B4Ny) - [Twitter](https://twitter.com/chrisatmachine) @@ -223,9 +133,11 @@ To update Neovim use your package manager or [compile from source](https://githu ## 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. <div align="center" id="madewithlua"> |