logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·23.06.26
← Back to blog

Neovim Lua Configuration: From Zero to IDE

Apr 10, 2026|Kurashizu
dummy

Neovim Lua Configuration: From Zero to IDE

Neovim has evolved into a powerful platform for developers who want a fast, extensible, and modal text editor. Combined with Lua as its configuration language, the possibilities are endless.

Why Lua?

Lua is lightweight, fast, and easy to embed. Neovim's API is exposed directly to Lua, making it a first-class citizen.

Basic Structure

A typical init.lua might look like:

vim.g.mapleader = " "
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true

-- Plugin manager
local install_path = vim.fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'

if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
  vim.fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path })
end

require('packer').startup(function(use)
  use 'wbthomason/packer.nvim'
  use 'nvim-treesitter/nvim-treesitter'
end)

LSP Setup

Setting up Language Server Protocol support is crucial for an IDE-like experience.

Transform your editing workflow today.