comparison .chezmoitemplates/init.lua @ 520:f845e2eba7e3

Use new keymap lua function to set keymaps
author zegervdv <zegervdv@me.com>
date Sun, 09 Jan 2022 14:27:10 +0100
parents d919c1590230
children 8908d3cde535
comparison
equal deleted inserted replaced
519:d919c1590230 520:f845e2eba7e3
212 { complete = 'file', nargs = '*' } 212 { complete = 'file', nargs = '*' }
213 ) 213 )
214 end, 214 end,
215 } 215 }
216 216
217 -- Keymaps TODO: to be removed when #13823 is merged
218 use {
219 'tjdevries/astronauta.nvim',
220 config = function()
221 require 'astronauta.keymap'
222 end,
223 }
224
225 -- Opening files 217 -- Opening files
226 use { 'wsdjeg/vim-fetch' } 218 use { 'wsdjeg/vim-fetch' }
227 219
228 -- session management 220 -- session management
229 use { 221 use {
264 use { 256 use {
265 'numtostr/navigator.nvim', 257 'numtostr/navigator.nvim',
266 config = function() 258 config = function()
267 require('Navigator').setup { auto_save = 'current', disable_on_zoom = true } 259 require('Navigator').setup { auto_save = 'current', disable_on_zoom = true }
268 260
269 local nnoremap = vim.keymap.nnoremap 261 local nmap = function(lhs, rhs, opts)
270 nnoremap { '<c-h>', require('Navigator').left, silent = true } 262 return vim.keymap.set('n', lhs, rhs, opts)
271 nnoremap { '<c-j>', require('Navigator').down, silent = true } 263 end
272 nnoremap { '<c-k>', require('Navigator').up, silent = true } 264 nmap('<c-h>', require('Navigator').left, { silent = true })
273 nnoremap { '<c-l>', require('Navigator').right, silent = true } 265 nmap('<c-j>', require('Navigator').down, { silent = true })
274 end, 266 nmap('<c-k>', require('Navigator').up, { silent = true })
275 requires = 'tjdevries/astronauta.nvim', 267 nmap('<c-l>', require('Navigator').right, { silent = true })
276 after = 'astronauta.nvim', 268 end,
277 } 269 }
278 270
279 -- Completion/snippets/LSP 271 -- Completion/snippets/LSP
280 use { 'neovim/nvim-lspconfig' } 272 use { 'neovim/nvim-lspconfig' }
281 use { 273 use {
707 opt.foldminlines = 1 699 opt.foldminlines = 1
708 opt.foldtext = 700 opt.foldtext =
709 [[substitute(getline(v:foldstart),'\\t',repeat('\ ',&tabstop),'g').'...'.trim(getline(v:foldend)) . ' (' . (v:foldend - v:foldstart + 1) . ' lines)']] 701 [[substitute(getline(v:foldstart),'\\t',repeat('\ ',&tabstop),'g').'...'.trim(getline(v:foldend)) . ' (' . (v:foldend - v:foldstart + 1) . ' lines)']]
710 opt.foldenable = false 702 opt.foldenable = false
711 703
704 -- Clean up terminal codes from strings
705 local t = function(str)
706 return vim.api.nvim_replace_termcodes(str, true, true, true)
707 end
708
709 -- General keymaps
710 local map = vim.keymap.set
711
712 -- Set leader to space
713 map({ 'n', 'v', 'i', 'x' }, '<space>', '<leader>', { remap = true })
714
715 -- Move while in insert mode
716 map('i', '<C-f>', '<right>')
717
718 -- Keep search matches centered
719 map('n', 'n', 'nzzzv')
720 map('n', 'N', 'Nzzzv')
721
722 -- Very magic search patterns
723 map({ 'n', 'v' }, '/', '/\\v')
724
725 -- Move through long lines as breaks
726 map('n', 'j', '(v:count ? "j" : "gj")', { expr = true })
727 map('n', 'k', '(v:count ? "k" : "gk")', { expr = true })
728
729 -- Command line search for commands
730 map('c', '<c-n>', '<down>')
731 map('c', '<c-p>', '<up>')
732
733 -- Clear highlighs
734 map('n', '<leader>l', '<cmd>noh<CR>', { silent = true })
735
736 -- Reselect last selection
737 map('n', 'gV', '`[v`]')
738
739 -- Use backspace as normal in visual mode
740 map('v', '<BS>', 'x', { remap = true })
741
742 -- Keep selection when indenting
743 local keep_visual_selection = function(cmd)
744 return function()
745 vim.opt.smartindent = false
746 if vim.fn.mode() == 'V' then
747 return cmd .. t ':set smartindent<CR>gv'
748 else
749 return cmd .. t ':set smartindent<CR>'
750 end
751 end
752 end
753 map('v', '>', keep_visual_selection '>', { expr = true, silent = true, desc = 'Indent right while keeping selection' })
754 map('v', '<', keep_visual_selection '<', { expr = true, silent = true, desc = 'Indent left while keeping selection' })
755
756 -- Swap backticks and quotes
757 map('n', '`', "'")
758 map('n', "'", '`')
759
712 local au = require 'au' 760 local au = require 'au'
713 761
714 -- Highlight yanked text 762 -- Highlight yanked text
715 au.TextYankPost = function() 763 au.TextYankPost = function()
716 vim.highlight.on_yank { timeout = 120 } 764 vim.highlight.on_yank { timeout = 120 }
754 -- LSP config 802 -- LSP config
755 local lsp = require 'lspconfig' 803 local lsp = require 'lspconfig'
756 local null_ls = require 'null-ls' 804 local null_ls = require 'null-ls'
757 805
758 local on_attach = function(client) 806 local on_attach = function(client)
759 local nnoremap = vim.keymap.nnoremap 807 local map = vim.keymap.set
760 local inoremap = vim.keymap.inoremap 808 local nmap = function(lhs, rhs, opts)
809 return vim.keymap.set('n', lhs, rhs, opts)
810 end
761 811
762 if client.resolved_capabilities.goto_definition == true then 812 if client.resolved_capabilities.goto_definition == true then
763 vim.bo.tagfunc = 'v:lua.vim.lsp.tagfunc' 813 vim.bo.tagfunc = 'v:lua.vim.lsp.tagfunc'
764 nnoremap { 'gp', require('goto-preview').goto_preview_definition, silent = true, buffer = 0 } 814 nmap('gp', require('goto-preview').goto_preview_definition, { silent = true, buffer = 0 })
765 nnoremap { 'gP', require('goto-preview').close_all_win, silent = true, buffer = 0 } 815 nmap('gP', require('goto-preview').close_all_win, { silent = true, buffer = 0 })
766 end 816 end
767 817
768 nnoremap { 'gd', vim.lsp.buf.declaration, silent = true, buffer = 0 } 818 nmap('gd', vim.lsp.buf.declaration, { silent = true, buffer = 0 })
769 nnoremap { 'K', vim.lsp.buf.hover, silent = true, buffer = 0 } 819 nmap('K', vim.lsp.buf.hover, { silent = true, buffer = 0 })
770 nnoremap { 'gD', vim.lsp.buf.implementation, silent = true, buffer = 0 } 820 nmap('gD', vim.lsp.buf.implementation, { silent = true, buffer = 0 })
771 nnoremap { '1gD', vim.lsp.buf.type_definition, silent = true, buffer = 0 } 821 nmap('1gD', vim.lsp.buf.type_definition, { silent = true, buffer = 0 })
772 nnoremap { 'gr', vim.lsp.buf.references, silent = true, buffer = 0 } 822 nmap('gr', vim.lsp.buf.references, { silent = true, buffer = 0 })
773 nnoremap { 'g0', vim.lsp.buf.document_symbol, silent = true, buffer = 0 } 823 nmap('g0', vim.lsp.buf.document_symbol, { silent = true, buffer = 0 })
774 824
775 if client.resolved_capabilities.document_formatting == true then 825 if client.resolved_capabilities.document_formatting == true then
776 nnoremap { 826 nmap('<c-p>', function()
777 '<c-p>', 827 vim.lsp.buf.formatting_sync({}, 5000)
778 function() 828 end, {
779 vim.lsp.buf.formatting_sync({}, 5000)
780 end,
781 silent = true, 829 silent = true,
782 buffer = 0, 830 buffer = 0,
783 } 831 })
784 end 832 end
785 833
786 if client.resolved_capabilities.document_range_formatting == true then 834 if client.resolved_capabilities.document_range_formatting == true then
787 vim.bo.formatexpr = 'v:lua.vim.lsp.formatexpr()' 835 vim.bo.formatexpr = 'v:lua.vim.lsp.formatexpr()'
788 end 836 end
789 837
790 inoremap { '<c-l>', vim.lsp.buf.signature_help, silent = true, buffer = 0 } 838 map('i', '<c-l>', vim.lsp.buf.signature_help, { silent = true, buffer = 0 })
791 839
792 vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) 840 vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' })
793 vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) 841 vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' })
794 end 842 end
795 843