Skip to content

Instantly share code, notes, and snippets.

@nonnontrivial
Last active August 23, 2025 00:49
Show Gist options
  • Save nonnontrivial/3df9d0ddcccb7da74cbbe3b26345cb9f to your computer and use it in GitHub Desktop.
Save nonnontrivial/3df9d0ddcccb7da74cbbe3b26345cb9f to your computer and use it in GitHub Desktop.
nvim config
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.g.mapleader = ' '
vim.keymap.set('n', '<leader>q', ':q<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>d', ':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>;', ':', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>k', '{', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>j', '}', { 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('n', '<leader>x', vim.diagnostic.open_float, { desc = "Show diagnostics" })
vim.api.nvim_set_keymap('i', '(', '()<Left>', { noremap = true })
vim.api.nvim_set_keymap('i', '[', '[]<Left>', { noremap = true })
vim.api.nvim_set_keymap('i', '{', '{}<Left>', { noremap = true })
vim.api.nvim_set_keymap('i', '"', '""<Left>', { noremap = true })
vim.api.nvim_set_keymap('i', "'", "''<Left>", { noremap = true })
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.lsp.config['ty'] = {
cmd = { 'ty', 'server' },
filetypes = { 'python' },
root_markers = { 'uv.lock', 'requirements.txt', '.git' },
settings = {}
}
vim.lsp.config('ruff', {
init_options = {
settings = {
logLevel = 'debug'
}
}
})
vim.lsp.enable('ty')
vim.lsp.enable('ruff')
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