diff options
Diffstat (limited to '.vim/init.lua')
| -rw-r--r-- | .vim/init.lua | 118 |
1 files changed, 80 insertions, 38 deletions
diff --git a/.vim/init.lua b/.vim/init.lua index 1c01c3a..3a60921 100644 --- a/.vim/init.lua +++ b/.vim/init.lua @@ -1,4 +1,4 @@ --- vim: fdm=marker +-- vim: fdm=marker fdl=0 local cmd = vim.cmd local g = vim.g @@ -60,14 +60,10 @@ opt.undolevels = 1000 opt.updatetime = 200 opt.wrap = true -require('globals') -require('plugins') -require('hardmode') - -- configure :grep to use ripgrep if it's available if vim.fn.executable('rg') then - vim.opt.grepprg = 'rg --vimgrep --smart-case --hidden' - vim.opt.grepformat = '%f:%l:%c:%m' + opt.grepprg = 'rg --vimgrep --smart-case --hidden' + opt.grepformat = '%f:%l:%c:%m' end -- persistent undo @@ -75,8 +71,8 @@ local undodir = vim.fn.stdpath('cache') .. '/undodir_' .. vim.env.USER if vim.fn.isdirectory(undodir) == 0 then vim.fn.mkdir(undodir, 'p', '0700') end -vim.g.undodir = undodir -vim.opt.undofile = true +g.undodir = undodir +opt.undofile = true -- }}} -- COLORS -- {{{ @@ -84,38 +80,78 @@ vim.opt.undofile = true cmd [[ colorscheme lush ]] -- }}} +require('globals') +require('plugins') +require('hardmode') + +-- Configure builtin diagnositics {{{ +vim.diagnostic.config { + underline = true, + virtual_text = false, + signs = true, + float = false, + update_in_insert = false, + + virtual_lines = { prefix = '⬐ ' }, +} +vim.fn.sign_define({ + {name='DiagnosticSignError', text='✗', texthl='DiagnosticSignError'}, + -- {name='DiagnosticSignWarn', text='⚡', texthl='DiagnosticSignWarn'}, + {name='DiagnosticSignWarn', text='⚐', texthl='DiagnosticSignWarn'}, + {name='DiagnosticSignInfo', text='ℹ', texthl='DiagnosticSignInfo'}, + {name='DiagnosticSignHint', text='🞶', texthl='DiagnosticSignHint'} +}) +-- }}} + -- KEY BINDS -- {{{ -local nnoremap = require('astronauta.keymap').nnoremap -local vnoremap = require('astronauta.keymap').vnoremap -local tnoremap = require('astronauta.keymap').tnoremap - -nnoremap { 'Q', function() cmd [[ quitall ]] end, silent = false } -nnoremap { 'gb', function() cmd [[ bnext ]] end } -nnoremap { 'gB', function() cmd [[ bprevious ]] end } -nnoremap { '<tab>', function() cmd [[ exe 'normal zA' | IndentBlanklineRefresh ]] end } - --- nnoremap { '{', [[ {zz ]] } --- nnoremap { '}', [[ }zz ]] } -vim.cmd [[nnoremap c "_c]] -vim.cmd [[nnoremap C "_C]] -vim.cmd [[vnoremap c "_c]] -vim.cmd [[vnoremap C "_C]] - -tnoremap { '<esc>', [[ <c-\><c-n> ]] } -tnoremap { '<leader>qq', [[ <c-\><c-n> :bdelete!<cr> ]] } -vnoremap { 'T', function() cmd [[ retab! | call feedkeys("\<esc>") ]] end } +vim.keymap.set('n', 'Q', [[ :quitall<cr> ]], {silent = true}) +vim.keymap.set('n', 'gb', [[ :bnext<cr> ]], {silent = true}) +vim.keymap.set('n', 'gB', [[ :bprevious<cr> ]], {silent = true}) +vim.keymap.set('n', '<tab>', [[ :exe 'normal za' | IndentBlanklineRefresh<cr> ]], {silent = true}) + +vim.keymap.set('n', ']d', vim.diagnostic.goto_next) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) +vim.keymap.set('n', '<leader>d', vim.diagnostic.open_float) + +-- swap gf and gF +vim.keymap.set('n', 'gf', [[ gF ]]) +vim.keymap.set('v', 'gf', [[ gF ]]) + +-- vim.keymap.set('n', '{', [[ {zz ]]) +-- vim.keymap.set('n', '}', [[ }zz ]]) +-- this makes c<anything> jump to the start of the line +-- vim.keymap.set({'n', 'v'}, 'c', '_c') +-- vim.keymap.set({'n', 'v'}, 'C', '_C') + +vim.keymap.set('t', '<esc>', [[ <c-\><c-n> ]]) +vim.keymap.set('t', '<leader>qq', [[ <c-\><c-n> :bdelete!<cr> ]]) +vim.keymap.set('v', 'T', + function() + vim.cmd [[retab!]] + vim.fn.feedkeys("\\<esc>") + end) local misc = require('misc') -nnoremap { 'gf', function() misc.file_under_cursor(function(s) vim.cmd('edit ' .. s) end) end } -nnoremap { 'gF', function() misc.open_under_cursor() end } -nnoremap { 'gx', function() misc.open_under_cursor('url-launcher') end } -nnoremap { 'gGw', function() misc.word_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end } -nnoremap { 'gGe', function() misc.expr_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end } -nnoremap { 'gGf', function() misc.file_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end } -nnoremap { 'gs', function() misc.word_under_cursor(function(s) vim.fn.feedkeys(':%s/' .. s .. '//g'); cmd [[ call feedkeys("\<left>\<left>") ]] end) end } - -nnoremap { '<leader>r', misc.live_grep } -nnoremap { '<leader>f', misc.find_files } +vim.keymap.set('n', 'gd', function() misc.open_under_cursor(nil, true) end) +-- vim.keymap.set('n', 'gf', function() misc.file_under_cursor(function(s) vim.cmd('edit ' .. s) end) end) +vim.keymap.set('n', 'gx', function() misc.open_under_cursor('url-launcher') end) +vim.keymap.set('n', 'gu', function() misc.open_under_cursor('url-launcher') end) +vim.keymap.set('n', 'gGw', function() misc.word_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end) +vim.keymap.set('n', 'gGe', function() misc.expr_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end) +vim.keymap.set('n', 'gGf', function() misc.file_under_cursor(function(s) require('telescope.builtin.files').grep_string({ search = s }) end) end) +vim.keymap.set('n', 'gss', function() misc.word_under_cursor(function(s) vim.fn.feedkeys(':%s/' .. s .. '//g'); cmd [[ call feedkeys("\<left>\<left>") ]] end) end) + +vim.keymap.set('n', '<leader>r', misc.live_grep) +vim.keymap.set('n', '<leader>f', misc.find_files) + +vim.keymap.set('n', 'dgl', 'diffget LOCAL') +vim.keymap.set('n', 'dgr', 'diffget REMOTE') +vim.keymap.set('n', 'dpl', 'diffpush LOCAL') +vim.keymap.set('n', 'dpr', 'diffpush REMOTE') + +vim.keymap.set('x', '<leader>bf', + [[<ESC><CMD>lua require("misc").fold_block()<CR>]], + { noremap = true, silent = true }) -- }}} -- AUTO GROUPS -- {{{ @@ -145,6 +181,12 @@ augroup { help_quit = { {'FileType', 'help', [[ nnoremap <buffer><silent> q <cmd>bdel<cr> ]]} }, + detect_gomod = { + {'BufRead,BufNewFile', 'go.mod', [[setlocal filetype=gomod]]} + }, + detect_bindir_scripts = { + {'BufRead,BufNewFile', '/home/robert/bin/*', [[setlocal filetype=sh]]} + } } -- }}} |