config/nvim/lua/maps.lua (view raw)
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
local cmd = vim.cmd local map = vim.keymap.set local u = require 'utils' local M = {} -- map the leader key map('n', '<Space>', '', {}) vim.g.mapleader = ' ' local options = { silent = true } map('n', '<leader><esc>', ':nohlsearch<cr>', options) map('n', '<leader>n', ':bnext<cr>', options) map('n', '<leader>p', ':bprev<cr>', options) -- search matches in the middle of the window map('n', 'n', 'nzzzv', options) map('n', 'N', 'Nzzzv', options) -- remain in visual after indenting map('v', '<', '<gv', options) map('v', '>', '>gv', options) -- Not an editor command: Wqa cmd(':command! WQ wq') cmd(':command! WQ wq') cmd(':command! Wq wq') cmd(':command! Wqa wqa') cmd(':command! W w') cmd(':command! Q q') local function fzy_ignore(patterns) local pattern_cmd = {} for _, p in ipairs(patterns) do table.insert(pattern_cmd, string.format("-E '%s'", p)) end return table.concat(pattern_cmd, ' ') end -- fzy mappings if vim.fn.executable('fzy') then _G.fzy_edit = require('fzy.edit').fzy_edit map( '', '<leader>e', string.format( ':call v:lua.fzy_edit("fd -t f -t l")<cr>', fzy_ignore{ '*.git/*', '*node_modules*', '*.pyc', '*migrations*', '*result*', '*.direnv/*', } ), { noremap=true, silent=true } ) _G.fzy_buffers = require('fzy.buffers').fzy_buffers map('', '<leader>b', ':call v:lua.fzy_buffers()<cr>', { noremap=true, silent=true } ) _G.fzy_jmp = require('fzy.jump').fzy_jmp map('', '<leader>f', ':call v:lua.fzy_jmp()<cr>', { noremap=true, silent=true} ) else print('fzy not in PATH!') end -- lspconfig function M.on_attach(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', options) buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', options) buf_set_keymap('n', 'ga', '<Cmd>lua vim.lsp.buf.code_action()<CR>', options) buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', options) buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', options) buf_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', options) buf_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', options) buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', options) if client.server_capabilities.document_formatting then buf_set_keymap('n', 'ff', '<cmd>lua vim.lsp.buf.format()<CR>', options) elseif client.server_capabilities.document_range_formatting then buf_set_keymap('n', 'ff', '<cmd>lua vim.lsp.buf.range_formatting()<CR>', options) end end -- vim.api.nvim_exec([[ -- " Use <Tab> and <S-Tab> to navigate through popup menu -- inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" -- inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" -- -- ]], false) -- abbreviations local star = '★' local stars = {} for n = 1, 5 do table.insert(stars, star) u.iabbrev(n .. '*', table.concat(stars)) end return M |