From 1dd0fef2b5448d3f7b433cc98af534200797f991 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Tue, 8 Feb 2022 23:33:23 +0100 Subject: vim: use builtin vim.keymap --- .vim/init.lua | 118 +++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 80 insertions(+), 38 deletions(-) (limited to '.vim/init.lua') 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 { '', 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 { '', [[ ]] } -tnoremap { 'qq', [[ :bdelete! ]] } -vnoremap { 'T', function() cmd [[ retab! | call feedkeys("\") ]] end } +vim.keymap.set('n', 'Q', [[ :quitall ]], {silent = true}) +vim.keymap.set('n', 'gb', [[ :bnext ]], {silent = true}) +vim.keymap.set('n', 'gB', [[ :bprevious ]], {silent = true}) +vim.keymap.set('n', '', [[ :exe 'normal za' | IndentBlanklineRefresh ]], {silent = true}) + +vim.keymap.set('n', ']d', vim.diagnostic.goto_next) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) +vim.keymap.set('n', '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 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', '', [[ ]]) +vim.keymap.set('t', 'qq', [[ :bdelete! ]]) +vim.keymap.set('v', 'T', + function() + vim.cmd [[retab!]] + vim.fn.feedkeys("\\") + 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("\\") ]] end) end } - -nnoremap { 'r', misc.live_grep } -nnoremap { '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("\\") ]] end) end) + +vim.keymap.set('n', 'r', misc.live_grep) +vim.keymap.set('n', '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', 'bf', + [[lua require("misc").fold_block()]], + { noremap = true, silent = true }) -- }}} -- AUTO GROUPS -- {{{ @@ -145,6 +181,12 @@ augroup { help_quit = { {'FileType', 'help', [[ nnoremap q bdel ]]} }, + detect_gomod = { + {'BufRead,BufNewFile', 'go.mod', [[setlocal filetype=gomod]]} + }, + detect_bindir_scripts = { + {'BufRead,BufNewFile', '/home/robert/bin/*', [[setlocal filetype=sh]]} + } } -- }}} -- cgit 1.4.1