Mercurial > dotfiles
changeset 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 |
files | .chezmoitemplates/config.vim .chezmoitemplates/init.lua |
diffstat | 2 files changed, 80 insertions(+), 101 deletions(-) [+] |
line wrap: on
line diff
--- a/.chezmoitemplates/config.vim Sun Jan 09 14:26:16 2022 +0100 +++ b/.chezmoitemplates/config.vim Sun Jan 09 14:27:10 2022 +0100 @@ -38,79 +38,10 @@ " " Mappings -" Set leader to spacebar -map <space> <leader> - -" See long lines as line breaks -noremap <expr> j (v:count? 'j' : 'gj') -noremap <expr> k (v:count? 'k' : 'gk') - -" Remap tag-search to better place -nnoremap <C-$> g<C-]> -nnoremap <C-w>y <C-w>g<C-]> - -nnoremap <C-s> <C-e> - -" Move while in insert mode -inoremap <C-f> <right> - -" Switch between the last two files -" nnoremap <space><space> <C-^> - -" " Very Magic search patterns -nnoremap / /\v -vnoremap / /\v - -" Keep search matches in the middle of the window. -nnoremap n nzzzv -nnoremap N Nzzzv - -" Search for beginning of command -cnoremap <c-n> <down> -cnoremap <c-p> <up> - -" Move whole lines -nnoremap [e :<c-u>execute 'move -1-'. v:count1<cr> -nnoremap ]e :<c-u>execute 'move +'. v:count1<cr> - -" Insert empty lines -nnoremap [<space> :<c-u>put! =repeat(nr2char(10), v:count1)<cr>'[ -nnoremap ]<space> :<c-u>put =repeat(nr2char(10), v:count1)<cr> - -" Clear highlight -nnoremap <silent><leader>l :noh<CR> - -inoremap £ \ - -" Highlight last inserted text -nnoremap gV `[v`] " Highlight VCS conflict markers match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$' -" Use backspace as delete in visual mode -vmap <BS> x - -" Redraw screen -nnoremap <F3> :redraw!<CR> - -" Keep selection when shifting -vmap <expr> > KeepVisualSelection(">") -vmap <expr> < KeepVisualSelection("<") - -function! KeepVisualSelection(cmd) - set nosmartindent - if mode() ==# "V" - return a:cmd . ":set smartindent\<CR>gv" - else - return a:cmd . ":set smartindent\<CR>" - endif -endfunction - -" Swap backticks and quotes -nnoremap ` ' -nnoremap ' ` - " Do not move on * nnoremap <silent> * :let stay_star_view = winsaveview()<cr>*:call winrestview(stay_star_view)<cr>
--- a/.chezmoitemplates/init.lua Sun Jan 09 14:26:16 2022 +0100 +++ b/.chezmoitemplates/init.lua Sun Jan 09 14:27:10 2022 +0100 @@ -214,14 +214,6 @@ end, } - -- Keymaps TODO: to be removed when #13823 is merged - use { - 'tjdevries/astronauta.nvim', - config = function() - require 'astronauta.keymap' - end, - } - -- Opening files use { 'wsdjeg/vim-fetch' } @@ -266,14 +258,14 @@ config = function() require('Navigator').setup { auto_save = 'current', disable_on_zoom = true } - local nnoremap = vim.keymap.nnoremap - nnoremap { '<c-h>', require('Navigator').left, silent = true } - nnoremap { '<c-j>', require('Navigator').down, silent = true } - nnoremap { '<c-k>', require('Navigator').up, silent = true } - nnoremap { '<c-l>', require('Navigator').right, silent = true } + local nmap = function(lhs, rhs, opts) + return vim.keymap.set('n', lhs, rhs, opts) + end + nmap('<c-h>', require('Navigator').left, { silent = true }) + nmap('<c-j>', require('Navigator').down, { silent = true }) + nmap('<c-k>', require('Navigator').up, { silent = true }) + nmap('<c-l>', require('Navigator').right, { silent = true }) end, - requires = 'tjdevries/astronauta.nvim', - after = 'astronauta.nvim', } -- Completion/snippets/LSP @@ -709,6 +701,62 @@ [[substitute(getline(v:foldstart),'\\t',repeat('\ ',&tabstop),'g').'...'.trim(getline(v:foldend)) . ' (' . (v:foldend - v:foldstart + 1) . ' lines)']] opt.foldenable = false +-- Clean up terminal codes from strings +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end + +-- General keymaps +local map = vim.keymap.set + +-- Set leader to space +map({ 'n', 'v', 'i', 'x' }, '<space>', '<leader>', { remap = true }) + +-- Move while in insert mode +map('i', '<C-f>', '<right>') + +-- Keep search matches centered +map('n', 'n', 'nzzzv') +map('n', 'N', 'Nzzzv') + +-- Very magic search patterns +map({ 'n', 'v' }, '/', '/\\v') + +-- Move through long lines as breaks +map('n', 'j', '(v:count ? "j" : "gj")', { expr = true }) +map('n', 'k', '(v:count ? "k" : "gk")', { expr = true }) + +-- Command line search for commands +map('c', '<c-n>', '<down>') +map('c', '<c-p>', '<up>') + +-- Clear highlighs +map('n', '<leader>l', '<cmd>noh<CR>', { silent = true }) + +-- Reselect last selection +map('n', 'gV', '`[v`]') + +-- Use backspace as normal in visual mode +map('v', '<BS>', 'x', { remap = true }) + +-- Keep selection when indenting +local keep_visual_selection = function(cmd) + return function() + vim.opt.smartindent = false + if vim.fn.mode() == 'V' then + return cmd .. t ':set smartindent<CR>gv' + else + return cmd .. t ':set smartindent<CR>' + end + end +end +map('v', '>', keep_visual_selection '>', { expr = true, silent = true, desc = 'Indent right while keeping selection' }) +map('v', '<', keep_visual_selection '<', { expr = true, silent = true, desc = 'Indent left while keeping selection' }) + +-- Swap backticks and quotes +map('n', '`', "'") +map('n', "'", '`') + local au = require 'au' -- Highlight yanked text @@ -756,38 +804,38 @@ local null_ls = require 'null-ls' local on_attach = function(client) - local nnoremap = vim.keymap.nnoremap - local inoremap = vim.keymap.inoremap + local map = vim.keymap.set + local nmap = function(lhs, rhs, opts) + return vim.keymap.set('n', lhs, rhs, opts) + end if client.resolved_capabilities.goto_definition == true then vim.bo.tagfunc = 'v:lua.vim.lsp.tagfunc' - nnoremap { 'gp', require('goto-preview').goto_preview_definition, silent = true, buffer = 0 } - nnoremap { 'gP', require('goto-preview').close_all_win, silent = true, buffer = 0 } + nmap('gp', require('goto-preview').goto_preview_definition, { silent = true, buffer = 0 }) + nmap('gP', require('goto-preview').close_all_win, { silent = true, buffer = 0 }) end - nnoremap { 'gd', vim.lsp.buf.declaration, silent = true, buffer = 0 } - nnoremap { 'K', vim.lsp.buf.hover, silent = true, buffer = 0 } - nnoremap { 'gD', vim.lsp.buf.implementation, silent = true, buffer = 0 } - nnoremap { '1gD', vim.lsp.buf.type_definition, silent = true, buffer = 0 } - nnoremap { 'gr', vim.lsp.buf.references, silent = true, buffer = 0 } - nnoremap { 'g0', vim.lsp.buf.document_symbol, silent = true, buffer = 0 } + nmap('gd', vim.lsp.buf.declaration, { silent = true, buffer = 0 }) + nmap('K', vim.lsp.buf.hover, { silent = true, buffer = 0 }) + nmap('gD', vim.lsp.buf.implementation, { silent = true, buffer = 0 }) + nmap('1gD', vim.lsp.buf.type_definition, { silent = true, buffer = 0 }) + nmap('gr', vim.lsp.buf.references, { silent = true, buffer = 0 }) + nmap('g0', vim.lsp.buf.document_symbol, { silent = true, buffer = 0 }) if client.resolved_capabilities.document_formatting == true then - nnoremap { - '<c-p>', - function() - vim.lsp.buf.formatting_sync({}, 5000) - end, + nmap('<c-p>', function() + vim.lsp.buf.formatting_sync({}, 5000) + end, { silent = true, buffer = 0, - } + }) end if client.resolved_capabilities.document_range_formatting == true then vim.bo.formatexpr = 'v:lua.vim.lsp.formatexpr()' end - inoremap { '<c-l>', vim.lsp.buf.signature_help, silent = true, buffer = 0 } + map('i', '<c-l>', vim.lsp.buf.signature_help, { silent = true, buffer = 0 }) vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' }) vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' })