Skip to content

Instantly share code, notes, and snippets.

-- Lua config from this blog post:
-- https://vonheikemen.github.io/devlog/tools/simple-neovim-config/
-- Dependencies:
-- https://github.com/neovim/nvim-lspconfig
-- https://github.com/echasnovski/mini.nvim
vim.o.number = true
vim.o.tabstop = 2
vim.o.shiftwidth = 2
vim.o.smartcase = true
@VonHeikemen
VonHeikemen / init.vim
Last active April 17, 2025 01:38
simple neovim config written in vimscript
" vimscript version of the config in this blog post:
" https://vonheikemen.github.io/devlog/tools/simple-neovim-config/
set number
set tabstop=2
set shiftwidth=2
set smartcase
set ignorecase
set nowrap
set nohlsearch
@VonHeikemen
VonHeikemen / cli.lua
Created September 29, 2024 01:01
Template for (small) command line scripts written in lua (5.2)
#! /usr/bin/env lua
local function main(argv)
local name = argv[1] or 'World'
sh.spawn('echo "Hello, %s!"', name)
end
---
-- I/O helper functions
@VonHeikemen
VonHeikemen / init.lua
Last active February 27, 2024 20:09
Minimal configuration of lsp-zero used in the demo https://asciinema.org/a/636643 (doesn't include colorscheme)
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
-- Auto-install lazy.nvim if not present
if not vim.loop.fs_stat(lazypath) then
print('Installing lazy.nvim....')
vim.fn.system({
'git',
'clone',
'--filter=blob:none',
'https://github.com/folke/lazy.nvim.git',
#! /usr/bin/lua
--[[*
* test case: cmus-notify status playing file path title hola artist qace album ok
*
* installation:
* - Set the status_display_program variable in cmus
* :set status_display_program=/path-to/cmus-notify.lua
*
* - Save the changes using
@VonHeikemen
VonHeikemen / lsp.lua
Last active August 15, 2023 19:00
Primeagen's LSP config without lsp-zero
vim.opt.signcolumn = 'yes'
vim.diagnostic.config({
virtual_text = true,
})
vim.api.nvim_create_autocmd('LspAttach', {
desc = 'LSP keybindings',
callback = function(event)
local opts = {buffer = event.buf}
@VonHeikemen
VonHeikemen / snippet-expansion.lua
Last active December 8, 2024 23:41
enhanced native completion to expand snippets
-- based on u/YungDaVinci work:
-- https://www.reddit.com/r/neovim/comments/ydlgzi/expand_lsp_snippets_with_luasnip_while_using/
vim.api.nvim_create_augroup('user-snippet-expand', {})
vim.api.nvim_create_autocmd('CompleteDone', {
group = 'user-snippet-expand',
desc = 'Expand LSP snippet',
pattern = '*',
callback = function(opts)
local comp = vim.v.completed_item
@VonHeikemen
VonHeikemen / nvchad-setup.lua
Created September 24, 2022 23:58
Separate NvChad's configuration from Neovim's default configuration
local path_sep = vim.loop.os_uname().version:match('Windows') and '\\' or '/'
local join = function(...) return table.concat({...}, path_sep) end
local getpath = function(arg)
local path = vim.fn.stdpath(arg)
return vim.fn.substitute(path, [[\(.*\)\zsnvim]], 'nvchad', '')
end
local user_path = getpath('config')
local data_path = getpath('data')
local chad_core = join(data_path, 'core', 'nvim')
@VonHeikemen
VonHeikemen / astronvim-setup.lua
Last active October 3, 2023 11:36
Separate astronvim's configuration from Neovim's default.
--- For details of usage and explanation see:
--- https://dev.to/vonheikemen/how-to-install-astronvim-without-overriding-your-existing-neovim-configuration-1nke
local path_sep = vim.loop.os_uname().version:match('Windows') and '\\' or '/'
local join = function(...) return table.concat({...}, path_sep) end
local getpath = function(arg)
local path = vim.fn.stdpath(arg)
return vim.fn.substitute(path, [[\(.*\)\zsnvim]], 'astronvim', '')
end
@VonHeikemen
VonHeikemen / init.lua
Last active February 8, 2025 05:00
nvim-lspconfig + nvim-cmp setup
--[[
blogpost:
https://vonheikemen.github.io/devlog/tools/setup-nvim-lspconfig-plus-nvim-cmp/
Dependencies:
LSP:
https://github.com/neovim/nvim-lspconfig
https://github.com/williamboman/mason.nvim (optional)
https://github.com/williamboman/mason-lspconfig.nvim (optional)