Last active
January 17, 2026 18:57
-
-
Save nonnontrivial/3df9d0ddcccb7da74cbbe3b26345cb9f to your computer and use it in GitHub Desktop.
nvim config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| vim.o.termguicolors = true | |
| vim.o.relativenumber = true -- relative line numbers | |
| vim.o.number = true -- show absolute number on current line | |
| vim.o.cursorline = true -- highlight current line | |
| vim.o.ignorecase = true | |
| vim.o.smartcase = true | |
| vim.o.clipboard = 'unnamedplus' -- use the system clipboard by default | |
| vim.o.wrap = false | |
| vim.g.mapleader = ' ' -- space as leader | |
| vim.keymap.set('n', '<leader>k', ':q<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>j', ':w<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>e', ':Ex<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>h', 'H<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>m', 'M<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>l', 'L<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>c', ':cclose<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>z', '<C-z>', { desc = 'Suspend Neovim' }) | |
| vim.keymap.set('n', '<leader>;', ':', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>i', 'I', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>o', 'O', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>a', 'A', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>n', ':new<CR>', { noremap = true, silent = true }) | |
| vim.keymap.set('n', '<leader>w', '<C-w>', { noremap = true, silent = true }) | |
| vim.keymap.set('i', 'jk', '<Esc>', { noremap = true }) | |
| vim.keymap.set('i', '<leader>g', '_', { noremap = true }) | |
| vim.keymap.set('i', '<leader>h', ':', { noremap = true }) | |
| vim.keymap.set('n', '<leader>x', vim.diagnostic.open_float, { desc = "Show diagnostics" }) | |
| vim.o.expandtab = true | |
| vim.o.shiftwidth = 4 | |
| vim.o.tabstop = 4 | |
| vim.o.softtabstop = 4 | |
| vim.cmd.colorscheme('habamax') | |
| vim.cmd [[packadd packer.nvim]] | |
| require('packer').startup(function(use) | |
| use { 'nvim-telescope/telescope.nvim', requires = { 'nvim-lua/plenary.nvim' } } | |
| local builtin = require('telescope.builtin') | |
| vim.keymap.set('n', '<leader>f', builtin.find_files, {}) | |
| vim.keymap.set('n', '<leader>b', builtin.buffers, {}) | |
| vim.keymap.set('n', 'gr', vim.lsp.buf.references, { buffer = bufnr, desc = 'LSP: References' }) | |
| vim.lsp.config.ty = { | |
| cmd = { 'ty', 'server' }, | |
| filetypes = { 'python' }, | |
| root_markers = { 'uv.lock', 'requirements.txt', 'pyproject.toml', '.git' }, | |
| settings = {} | |
| } | |
| vim.lsp.enable('ty') | |
| vim.lsp.config.ruff = { | |
| init_options = { | |
| settings = { | |
| logLevel = 'debug', | |
| }, | |
| }, | |
| } | |
| vim.lsp.enable('ruff') | |
| vim.lsp.config.gopls = { | |
| filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }, | |
| root_markers = { 'go.mod', '.git', 'go.work' }, | |
| settings = { | |
| gopls = { | |
| analyses = { | |
| unusedparams = true, | |
| }, | |
| staticcheck = true, | |
| gofumpt = true, | |
| } | |
| } | |
| } | |
| vim.lsp.enable('gopls') | |
| -- Create an autocommand group for Go formatting | |
| local format_sync_grp = vim.api.nvim_create_augroup("GoFormat", {}) | |
| vim.api.nvim_create_autocmd("BufWritePre", { | |
| pattern = "*.go", | |
| callback = function() | |
| vim.lsp.buf.format({ async = false }) | |
| end, | |
| group = format_sync_grp, | |
| }) | |
| vim.keymap.set('n', '<leader>y', function() | |
| vim.cmd('!ruff format ' .. vim.fn.expand('%')) | |
| end, { desc = 'format current python file'}) | |
| use { | |
| 'lewis6991/gitsigns.nvim', | |
| config = function() | |
| require('gitsigns').setup() | |
| end | |
| } | |
| use 'neovim/nvim-lspconfig' | |
| use 'hrsh7th/nvim-cmp' | |
| use 'hrsh7th/cmp-nvim-lsp' | |
| local cmp = require('cmp') | |
| cmp.setup({ | |
| completion = { | |
| autocomplete = { require("cmp.types").cmp.TriggerEvent.TextChanged }, | |
| }, | |
| mapping = cmp.mapping.preset.insert({ | |
| ['<Leader>c'] = cmp.mapping.complete(), | |
| ['<CR>'] = cmp.mapping.confirm({ select = true }), | |
| ['<Tab>'] = cmp.mapping.select_next_item(), | |
| ['<S-Tab>'] = cmp.mapping.select_prev_item(), | |
| }), | |
| sources = { | |
| { name = 'nvim_lsp' }, | |
| } | |
| }) | |
| end) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment