-- Setup fzf-lua keybindings and some other searches local fzf = require('fzf-lua') vim.keymap.set('n', 'b', fzf.buffers, { desc = "Buffers" }) vim.keymap.set('n', 'fG', fzf.grep_cword, { desc = "Grep word under cursor" }) vim.keymap.set('n', 'fc', fzf.commands, { desc = "Commands" }) vim.keymap.set('n', 'ff', fzf.files, { desc = "Find file" }) vim.keymap.set('n', 'fg', fzf.live_grep, { desc = "Grep" }) vim.keymap.set('n', 'fm', fzf.manpages, { desc = "Manpages" }) vim.keymap.set('n', 'fr', fzf.resume, { desc = "Resume last search" }) vim.keymap.set('n', 'fs', fzf.blines, { desc = "Search buffer" }) vim.keymap.set('n', 'ft', ":TodoFzfLua", { desc = "Todos" }) -- use fzf buffer lines as default search vim.keymap.set('n', '', fzf.blines, { desc = "Search buffer" }) vim.keymap.set('n', 'z=', fzf.spell_suggest, { desc = "Spelling suggestions" }) -- open file manager and git vim.keymap.set('n', 'g', ":Neogit", { desc = "Neogit" }) vim.keymap.set('n', 'T', ":Neotree reveal", { desc = "File Manager" }) -- calendar vim.keymap.set('n', 'c', ":Calendar -split=horizontal -position=below -height=12", { desc = "Show calendar" }) -- -- configure workspaces -- also add a custom picker to fzf -- local workspaces = require('workspaces') local workspaces_fzf_picker = function(opts) local fzf_lua = require('fzf-lua') opts = opts or {} opts.prompt = "Workspaces> " opts.actions = { ['default'] = function(selected) workspaces.open(selected[1]) end } fzf_lua.fzf_exec(function(fzf_cb) -- NOP local ws = workspaces.get() ws = ws or {} for i = 1, #ws do fzf_cb(ws[i].name) end fzf_cb() -- EOF end, opts) end vim.keymap.set('n', 'w', workspaces_fzf_picker, { desc = "Workspaces" }) ------------------------------------------ -- -- Word higlighting -- ------------------------------------------ local mywords = require('mywords') vim.keymap.set('n', 'mm', mywords.hl_toggle, { desc = "Highlight current word" }) vim.keymap.set('n', 'mr', mywords.hl_toggle_regex, { desc = "Highlight regexp" }) vim.keymap.set('n', 'mc', mywords.uhl_all, { desc = "Clear all highlights" }) ------------------------------------------ -- -- Shortcuts which are known from Emacs -- ------------------------------------------ vim.keymap.set('n', '0', ":hide", { desc = "Win: close current" }) vim.keymap.set('n', '1', ":only", { desc = "Win: close others" }) vim.keymap.set('n', '2', ":split", { desc = "Win: split horizontally" }) vim.keymap.set('n', '2', ":vsplit", { desc = "Win: split vertically" }) vim.keymap.set('n', 'q', "gwap", { desc = "Wrap paragraph" }) vim.keymap.set('n', '', ":silent! nohls", { desc = "Clear search" }) -- horizontally scroll with mouse vim.keymap.set('n', '', 'zh') vim.keymap.set('n', '', 'zl')