summaryrefslogtreecommitdiff
path: root/.config/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.config/nvim/init.lua177
1 files changed, 95 insertions, 82 deletions
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', ',,', '<cmd>NvimTreeToggle<cr>')
-vim.keymap.set('n', '<space><space>', '<cmd>Telescope buffers<cr>')
-
-vim.keymap.set('n', 'nn', '<cmd>bnext<cr>')
-vim.keymap.set('n', 'bb', '<cmd>bprev<cr>')
-
-vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>')
-vim.keymap.set('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
-vim.keymap.set('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>')
-vim.keymap.set('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>')
+-- Color Scheme
+vim.cmd [[colorscheme mellow]]
-vim.keymap.set('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
-vim.keymap.set('n', 'C-k', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
-vim.keymap.set('n', 'C-p', '<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>')
-vim.keymap.set('n', 'C-n', '<cmd>lua vim.lsp.diagnostic.goto_next()<cr>')
-
-vim.keymap.set('n', 'tt', '<cmd>tab ter<cr>')
-
-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({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.abort(),
['<TAB>'] = 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', '<cmd>pu<cr>', { noremap = true })
+
+vim.keymap.set('n', ',,', '<cmd>NvimTreeToggle<cr>', { noremap = true })
+vim.keymap.set('n', '<space><space>', '<cmd>Telescope find_files<cr>', { noremap = true })
+vim.keymap.set('n', '<space>b', '<cmd>Telescope buffers<cr>', { noremap = true })
+vim.keymap.set('n', '<space>f', '<cmd>Telescope live_grep<cr>', { noremap = true })
+
+vim.keymap.set('n', 'nn', '<cmd>bnext<cr>', { noremap = true })
+vim.keymap.set('n', 'bb', '<cmd>bprev<cr>', { noremap = true })
+vim.keymap.set('n', 'cw', '<cmd>bdelete!<cr>', { 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', '<cmd>tab ter<cr>', { noremap = true })
+
+-- Splitting The Window
+vim.api.nvim_set_keymap('n', '<C-x>|', ':vsplit<CR>', { noremap = true })
+vim.api.nvim_set_keymap('n', '<C-x>-', ':split<CR>', { noremap = true })
+
+vim.api.nvim_set_keymap('n', '<C-x><Left>', '<C-w>h', { noremap = true })
+vim.api.nvim_set_keymap('n', '<C-x><Down>', '<C-w>j', { noremap = true })
+vim.api.nvim_set_keymap('n', '<C-x><Up>', '<C-w>k', { noremap = true })
+vim.api.nvim_set_keymap('n', '<C-x><Right>', '<C-w>l', { noremap = true })