1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
require("config.lazy")
vim.o.background = "dark"
vim.o.tabstop = 4
vim.o.shiftwidth = 4
vim.o.ignorecase = true
vim.o.number = true
vim.o.signcolumn = "yes"
vim.cmd([[colorscheme gruvbox]])
-- easier window navigation
vim.keymap.set('n', '<C-h>', '<C-w>h', { noremap = true, silent = true })
vim.keymap.set('n', '<C-j>', '<C-w>j', { noremap = true, silent = true })
vim.keymap.set('n', '<C-k>', '<C-w>k', { noremap = true, silent = true })
vim.keymap.set('n', '<C-l>', '<C-w>l', { noremap = true, silent = true })
-- <C-l> by default clears search highlight, so we remap it
vim.keymap.set('n', '<leader><C-l>', ':nohl<CR>', { noremap = true, silent = true })
-- quick window close
vim.keymap.set('n', '<C-c>', '<C-w>c', { noremap = true, silent = true })
-- quick file write
vim.keymap.set('n', '<leader>w', ':w<CR>', { noremap = true, silent = true })
-- LSP binds
vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { noremap = true, silent = true })
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true, silent = true })
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { noremap = true, silent = true })
-- la - for LAzy (plugin manager)
vim.keymap.set('n', '<leader>la', ':Lazy<CR>', { noremap = true, silent = true })
-- Fugitive shortcuts
-- opens current file diff as vertical split
vim.keymap.set('n', '<leader>gd', ':Gvdiffsplit<CR>', { noremap = true, silent = true })
-- opens git fugitive status and make it the only visible window (gs is for Git Status)
vim.keymap.set('n', '<leader>gs', ':Git<CR><C-w>o', { noremap = true, silent = true })
-- opens blame mode. Navigate everywhere with <CR>
vim.keymap.set('n', '<leader>gb', ':Git blame<CR>', { noremap = true, silent = true })
-- from fugitive version of file, takes you back to HEAD
vim.keymap.set('n', '<leader>ge', ':Gedit<CR>', { noremap = true, silent = true })
vim.diagnostic.config({
virtual_text = true,
})
|