Neovim-from-scratch
neovim-lua
Our great sponsors
Neovim-from-scratch | neovim-lua | |
---|---|---|
81 | 25 | |
5,247 | 799 | |
1.1% | - | |
5.0 | 3.6 | |
about 1 month ago | 27 days ago | |
Lua | Lua | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Neovim-from-scratch
-
How to configure vim like an IDE
They also provide a "from-scratch" option, to be easier to understand
-
New User C Setup Help?
I would recommend the Neovim from Scratch series on Youtube with the addition of the code_runner.nvim plugin. It's a good config that will teach you a lot about configuring Neovim. code_runner.nvim is a nice addition, especially for a university student. Good luck!
-
How to learn neovim
I don't know myself how I learned neovim, but I started with using a repo called Neovim-from-scratch, but I'm not sure if it's still up to date, but I used it as my base config then started to add plugins I want and remove plugins I don't need. Most of the people recommend kickstart.nvim now as base config for neovim lua config.
- [nvChad] lspconfig
-
NOOB Needs help
Hey So I am trying to setup the neovim config for gopls and ts-server using [this](https://github.com/LunarVim/Neovim-from-scratch/tree/06-LSP), Now I would like to clarify that I have copy pasted from this guys repo and I do understand what he is doing to some extent. But for some reason in the file `lua/user/lsp/handlers.lua` He creted the following function ```lua local function lsp_keymaps(bufnr)
- [Neovim] Question de débutant sur le chargement de NVIM-Web-Devicons
- Is there a good neovim plugin that integrates a pre-configured lsp+treesitter+telescope?
-
Help with getting started with Neovim
This is the GitHub repo for the aforementioned playlist.
-
Opinions on pre-made configurations (e.g. LunarVim, AstroNvim)
I would recommend LazyVim or Kickstart.nvim. If you don't want to do any configuration, LunarVim might be for you. I would recommend the Neovim from Scratch config since it is very good and essentially has an accompanying guide. However, it is slightly out of date and needs a few tweaks to work properly.
- Migrating from VSCode to Neovim
neovim-lua
- GitHub - brainfucksec/neovim-lua: Neovim KISS configuration with Lua - Update config with lazy.nvim and other changes.
-
Finally written my nvim config in lua here is the link of my dots https://github.com/mdk4if/nvimDots.git . It's not too good i am damn sure but i will make it better for sure . Thanks for reading
I used this as a starting point: https://github.com/brainfucksec/neovim-lua/blob/main/nvim/lua/core/options.lua, but remove matchit from the table.
-
LSP warnings when assigning most vim options
-- LSP Configuration & Plugins local M = { 'neovim/nvim-lspconfig', event = "BufReadPre", dependencies = { -- Automatically install LSP servers, DAP servers, linters, formatters 'williamboman/mason.nvim', -- Recommended when using mason together with LSP, bridges the gap 'williamboman/mason-lspconfig.nvim', -- Useful status updates for LSP 'j-hui/fidget.nvim', -- Additional lua configuration 'folke/neodev.nvim', -- Integration "hrsh7th/cmp-nvim-lsp", -- Integration 'kevinhwang91/nvim-ufo', }, } function M.config() require("mason").setup() local u = require("core/utils") -- Customizing how diagnostics are displayed, source: https://github.com/brainfucksec/neovim-lua/blob/main/nvim/lua/lsp/lspconfig.lua vim.diagnostic.config({ update_in_insert = true, float = { focusable = false, style = "minimal", border = "rounded", source = "always", header = "", prefix = "", }, }) -- diagnostic (l) -- See `:help vim.diagnostic.*` for documentation on any of the below functions local opts = { noremap=true, silent=true } u.bind(u.normal, "Show diagnostics in a floating window (#lsp)", "ll", vim.diagnostic.open_float, opts) u.bind(u.normal, "Goto next diagnostic (#lsp)", "ln", vim.diagnostic.goto_next, opts) u.bind(u.normal, "Goto previous diagnostic (#lsp)", "lp", vim.diagnostic.goto_prev, opts) u.bind(u.normal, "Show diagnostics list in location list (#lsp)", "lq", vim.diagnostic.setloclist, opts) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(_, bufnr) -- Enable completion triggered by vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- lsp (l) -- See `:help vim.lsp.*` for documentation on any of the below functions local bufopts = { noremap=true, silent=true, buffer=bufnr } u.bind(u.normal, "Jump to definition (#lsp)", {"ld", "gd"}, vim.lsp.buf.definition, bufopts) u.bind(u.normal, "Jump to declaration (#lsp)", {"lD", "gD"}, vim.lsp.buf.declaration, bufopts) u.bind(u.normal, "Jump to type definition (#lsp)", "lt", vim.lsp.buf.type_definition, bufopts) u.bind(u.normal, "Show implementations list in quickfix window (#lsp)", {"li", "gi"}, vim.lsp.buf.implementation, bufopts) u.bind(u.normal, "Show references in the quickfix window (#lsp)", {"lr", "gr"}, vim.lsp.buf.references, bufopts) u.bind(u.normal, "Show signature help in floating window (#lsp)", {"lk", ""}, vim.lsp.buf.signature_help, bufopts) u.bind(u.normal, "Show hover information in floating window (#lsp)", "lK", vim.lsp.buf.hover, bufopts) vim.keymap.set("n", "K", function() local winid = require("ufo").peekFoldedLinesUnderCursor() if not winid then vim.lsp.buf.hover() end end) u.bind(u.normal, "Rename buffer (#lsp)", "lR", vim.lsp.buf.rename, bufopts) u.bind(u.normal, "Select code action (#lsp)", "la", vim.lsp.buf.code_action, bufopts) u.bind(u.normal, "Format buffer (#lsp)", "lf", function() vim.lsp.buf.format { async = true } end, bufopts) -- workspace u.bind(u.normal, "Add buffer location as workspace folder (lsp)", "lw", vim.lsp.buf.add_workspace_folder, bufopts) u.bind(u.normal, "Remove buffer location as workspace folder (lsp)", "lW", vim.lsp.buf.remove_workspace_folder, bufopts) u.bind(u.normal, "List workspace folders (lsp)", "lL", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, bufopts) u.bind(u.normal, "Show workspace diagnostics in Telescope (lsp)", "lQ", "Telescope diagnostics", bufopts) end -- nvim-cmp supports additional completion capabilities, so broadcast that to servers local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) -- Neovim hasn't added foldingRange to default capabilities, users must add it manually, source: https://github.com/kevinhwang91/nvim-ufo capabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true } local mason_lspconfig = require("mason-lspconfig") local servers = { astro = {}, bashls = {}, cssls = {}, dockerls = {}, eslint = {}, graphql = {}, html = {}, jsonls = { on_new_config = function(new_config) new_config.settings.json.schemas = new_config.settings.json.schemas or {} vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas()) end, settings = { json = { format = { enable = true, }, validate = { enable = true }, }, }, }, tsserver = {}, marksman = {}, pyright = {}, tailwindcss = {}, yamlls = {}, sumneko_lua = { Lua = { workspace = { checkThirdParty = false }, telemetry = { enable = false }, diagnostics = { -- Get the language server to recognize the `vim` global. globals = { 'vim', 'require' }, }, }, }, } -- Setup neovim lua configuration require('neodev').setup() mason_lspconfig.setup { ensure_installed = vim.tbl_keys(servers), automatic_installation = true, } local lspconfig = require("lspconfig") mason_lspconfig.setup_handlers { -- This is a default handler that will be called for each installed server (also for new servers that are installed during a session) function (server_name) lspconfig[server_name].setup { on_attach = on_attach, capabilities = capabilities, settings = servers[server_name], } end, } -- Turn on lsp status information require('fidget').setup() end return M
-
What are best plugins for C++, Java, Kotlin, Python, & LaTex
I'm not a lua expert, so prior, I simply grabbed one off GitHub, and made a few changes. It's been okay, but does not support LSP for Java or Kotlin. And doesn't use fzf (telescope?).
-
Appending to errorformat breaks quickfix
Disclaimer: It may appear that I know what the hell I am doing with lua, but I do not. I am using a lua configuration from here: https://github.com/brainfucksec/neovim-lua. I am appending the above to his options.lua and am copying his append example from above in the same file.
-
neovim-lua - Working on improvements for LSP and celebrating 2 years with Lua
neovim-lua
-
What is the most reliable neovim based editor?
What I ended up starting with that worked out of the box was brainfucksec’s kiss setup
-
wanting to switch from vscode to neovim
Rather than NvChad, I think this might be a better place to start since it includes only those you need This playlist was very helpful: https://www.youtube.com/watch?v=ctH-a-1eUME&list=PLhoH5vyxr6Qq41NFL4GvhFp-WLd5xzIzZ
-
I am getting ready to make a new lua config and want a basic config to start with.
https://github.com/brainfucksec/neovim-lua I found this one pretty simple, still all the basics are covered.
- Share any cool configuration templates that you know
What are some alternatives?
LunarVim - 🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.
NvChad - Blazing fast Neovim config providing solid defaults and a beautiful UI, enhancing your neovim experience.
kickstart.nvim - A launch point for your personal nvim configuration
vista.vim - :cactus: Viewer & Finder for LSP symbols and tags
AstroNvim - AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins
NvChad - An attempt to make neovim cli as functional as an IDE while being very beautiful , blazing fast. [Moved to: https://github.com/NvChad/NvChad]
vim-surround - surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease
Cozette - A bitmap programming font optimized for coziness 💜
LazyVim - Neovim config for the lazy
packer.nvim - A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config
zls - A Zig language server supporting Zig developers with features like autocomplete and goto definition
beacon.nvim - Whenever cursor jumps some distance or moves between windows, it will flash so you can see where it is