From ace6907e4c0ab04aea19b35f0437d6dfd076c298 Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Fri, 5 May 2023 09:46:31 +0530 Subject: update nvim conf --- .config/nvim/init.lua | 177 +++++++++++++++++++++++++++----------------------- 1 file changed, 95 insertions(+), 82 deletions(-) (limited to '.config/nvim/init.lua') diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 0c3e8e3..fe23e50 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -8,41 +8,54 @@ vim.opt.wrap = true vim.opt.breakindent = true vim.opt.tabstop = 2 vim.opt.shiftwidth = 2 -vim.opt.expandtab = false -vim.opt.keymodel = 'startsel','stopsel' +vim.opt.expandtab = true vim.opt.termguicolors = true vim.opt.ww = "<,>,[,]" +vim.api.nvim_set_option("clipboard","unnamedplus") +vim.opt.ruler = false + +-- Reset Cursor On Exit +local au_id = vim.api.nvim_create_augroup("RestoreCursorShapeOnExit", {clear = true}) +vim.api.nvim_create_autocmd("VimLeave",{ + command = 'set guicursor=a:ver20', + group = au_id +}) -- Setup Packages require('packer').startup(function(use) use 'wbthomason/packer.nvim' - use 'navarasu/onedark.nvim' use 'lukas-reineke/indent-blankline.nvim' use 'jiangmiao/auto-pairs' use 'kyazdani42/nvim-tree.lua' - use 'editorconfig/editorconfig-vim' - use 'neovim/nvim-lspconfig' - use 'hrsh7th/nvim-cmp' - use 'hrsh7th/vim-vsnip' - use 'hrsh7th/cmp-nvim-lsp' - use 'mhinz/vim-startify' + use { + 'numToStr/Comment.nvim', + config = function() + require('Comment').setup { + padding = true, + toggler = { + line = '..' + } + } + end + } - use {'akinsho/bufferline.nvim', tag = "v3.*", requires = 'nvim-tree/nvim-web-devicons'} + use 'kvrohit/mellow.nvim' + use 'mhinz/vim-startify' + use { + 'nvim-lualine/lualine.nvim', + requires = { 'nvim-tree/nvim-web-devicons' } + } + use {'akinsho/bufferline.nvim', tag = "*", requires = 'nvim-tree/nvim-web-devicons'} - use { - 'nvim-lualine/lualine.nvim', - requires = { 'kyazdani42/nvim-web-devicons', opt = true } - } - use { + use 'hrsh7th/cmp-nvim-lsp' + use 'hrsh7th/nvim-cmp' + use 'neovim/nvim-lspconfig' + use 'hrsh7th/cmp-nvim-lsp-signature-help' + use { 'nvim-telescope/telescope.nvim', requires = { {'nvim-lua/plenary.nvim'}} } - use { - 'numToStr/Comment.nvim', - config = function() - require('Comment').setup() - end - } + if install_plugins then require('packer').sync() end @@ -52,35 +65,29 @@ if install_plugins then return end ---Keymaps - -vim.keymap.set('n', ',,', 'NvimTreeToggle') -vim.keymap.set('n', '', 'Telescope buffers') - -vim.keymap.set('n', 'nn', 'bnext') -vim.keymap.set('n', 'bb', 'bprev') - -vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()') -vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()') -vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()') -vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()') +-- Color Scheme +vim.cmd [[colorscheme mellow]] -vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()') -vim.keymap.set('n', 'C-k', 'lua vim.lsp.buf.signature_help()') -vim.keymap.set('n', 'C-p', 'lua vim.lsp.diagnostic.goto_prev()') -vim.keymap.set('n', 'C-n', 'lua vim.lsp.diagnostic.goto_next()') - -vim.keymap.set('n', 'tt', 'tab ter') - -require('onedark').setup { - style = 'warmer' +require('lualine').setup { + options = { + section_separators = { left = '', right = '' }, + component_separators = { left = '|', right = '|' } + }, + sections = { + lualine_a = {'mode'}, + lualine_b = {'branch', 'diff', 'diagnostics'}, + lualine_c = {'filename'}, + lualine_x = {'filetype'}, + } } -require('onedark').load() -require('lualine').setup { - options = { - theme = 'onedark' - } +require('nvim-tree').setup { + hijack_cursor = true, + actions = { + open_file = { + quit_on_open = true, + } + } } require('bufferline').setup { @@ -115,29 +122,9 @@ require('Comment').setup { } } --- Nvim-Tree Setup -require('nvim-tree').setup { - hijack_cursor = false, - on_attach = function(bufnr) - local bufmap = function(lhs, rhs, desc) - vim.keymap.set('n', lhs, rhs, {buffer = bufnr, desc = desc}) - end - - local api = require('nvim-tree.api') - bufmap('L', api.node.open.edit, 'Expand folder or go to file') - bufmap('H', api.node.navigate.parent_close, 'Close parent folder') - bufmap('gh', api.tree.toggle_hidden_filter, 'Toggle hidden files') - end -} - -- CMP Setup local cmp = require'cmp' cmp.setup({ - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - end, - }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), @@ -146,15 +133,14 @@ cmp.setup({ [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), }), sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'vsnip' }, - }, { - { name = 'buffer' }, - }) + { name = 'nvim_lsp' } + }, { + { name = 'buffer' }, + } + ) }) cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ @@ -179,14 +165,41 @@ cmp.setup.cmdline(':', { }) -- Set Up Lspconfig +local lspconfig = require('lspconfig') local capabilities = require('cmp_nvim_lsp').default_capabilities() -require('lspconfig')['pyright'].setup { - capabilities = capabilities -} +servers = { 'pyright' } +for _, lsp in pairs(servers) do + lspconfig[lsp].setup { + capabilities = capabilities + } +end --- Reset Cursor On Exit -local au_id = vim.api.nvim_create_augroup("RestoreCursorShapeOnExit", {clear = true}) -vim.api.nvim_create_autocmd("VimLeave",{ - command = 'set guicursor=a:ver20', - group = au_id -}) +-- Keyboard Shortcuts +vim.keymap.set('n', 'P', 'pu', { noremap = true }) + +vim.keymap.set('n', ',,', 'NvimTreeToggle', { noremap = true }) +vim.keymap.set('n', '', 'Telescope find_files', { noremap = true }) +vim.keymap.set('n', 'b', 'Telescope buffers', { noremap = true }) +vim.keymap.set('n', 'f', 'Telescope live_grep', { noremap = true }) + +vim.keymap.set('n', 'nn', 'bnext', { noremap = true }) +vim.keymap.set('n', 'bb', 'bprev', { noremap = true }) +vim.keymap.set('n', 'cw', 'bdelete!', { noremap = true }) + + +vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true }) +vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { noremap = true }) +vim.keymap.set('n', 'gr', vim.lsp.buf.references, { noremap = true }) + +vim.keymap.set('n', 'K', vim.lsp.buf.hover, { noremap = true }) + +vim.keymap.set('n', 'tt', 'tab ter', { noremap = true }) + +-- Splitting The Window +vim.api.nvim_set_keymap('n', '|', ':vsplit', { noremap = true }) +vim.api.nvim_set_keymap('n', '-', ':split', { noremap = true }) + +vim.api.nvim_set_keymap('n', '', 'h', { noremap = true }) +vim.api.nvim_set_keymap('n', '', 'j', { noremap = true }) +vim.api.nvim_set_keymap('n', '', 'k', { noremap = true }) +vim.api.nvim_set_keymap('n', '', 'l', { noremap = true }) -- cgit v1.2.3