77 lines
2.9 KiB
Lua
77 lines
2.9 KiB
Lua
-- Setup fzf-lua keybindings and some other searches
|
|
local fzf = require('fzf-lua')
|
|
vim.keymap.set('n', '<leader>b', fzf.buffers, { desc = "Buffers" })
|
|
vim.keymap.set('n', '<leader>fG', fzf.grep_cword, { desc = "Grep word under cursor" })
|
|
vim.keymap.set('n', '<leader>fc', fzf.commands, { desc = "Commands" })
|
|
vim.keymap.set('n', '<leader>ff', fzf.files, { desc = "Find file" })
|
|
vim.keymap.set('n', '<leader>fg', fzf.live_grep, { desc = "Grep" })
|
|
vim.keymap.set('n', '<leader>fm', fzf.manpages, { desc = "Manpages" })
|
|
vim.keymap.set('n', '<leader>fr', fzf.resume, { desc = "Resume last search" })
|
|
vim.keymap.set('n', '<leader>fs', fzf.blines, { desc = "Search buffer" })
|
|
|
|
vim.keymap.set('n', '<leader>ft', ":TodoFzfLua<CR>", { desc = "Todos" })
|
|
|
|
-- use fzf buffer lines as default search
|
|
vim.keymap.set('n', '<C-/>', 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', '<leader>g', ":Neogit<CR>", { desc = "Neogit" })
|
|
vim.keymap.set('n', '<leader>T', ":Neotree reveal<CR>", { desc = "File Manager" })
|
|
|
|
-- calendar
|
|
vim.keymap.set('n', '<leader>c', ":Calendar -split=horizontal -position=below -height=12<CR>", { 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', '<leader>w', workspaces_fzf_picker, { desc = "Workspaces" })
|
|
|
|
------------------------------------------
|
|
--
|
|
-- Word higlighting
|
|
--
|
|
------------------------------------------
|
|
local mywords = require('mywords')
|
|
vim.keymap.set('n', '<space>mm', mywords.hl_toggle, { desc = "Highlight current word" })
|
|
vim.keymap.set('n', '<space>mr', mywords.hl_toggle_regex, { desc = "Highlight regexp" })
|
|
vim.keymap.set('n', '<space>mc', mywords.uhl_all, { desc = "Clear all highlights" })
|
|
|
|
|
|
------------------------------------------
|
|
--
|
|
-- Shortcuts which are known from Emacs
|
|
--
|
|
------------------------------------------
|
|
vim.keymap.set('n', '<C-W>0', ":hide<CR>", { desc = "Win: close current" })
|
|
vim.keymap.set('n', '<C-W>1', ":only<CR>", { desc = "Win: close others" })
|
|
vim.keymap.set('n', '<C-W>2', ":split<CR>", { desc = "Win: split horizontally" })
|
|
vim.keymap.set('n', '<C-W>2', ":vsplit<CR>", { desc = "Win: split vertically" })
|
|
vim.keymap.set('n', '<space>q', "gwap", { desc = "Wrap paragraph" })
|
|
vim.keymap.set('n', '<esc><esc>', ":silent! nohls<CR>", { desc = "Clear search" })
|
|
|
|
-- horizontally scroll with mouse
|
|
vim.keymap.set('n', '<S-ScrollWheelUp>', 'zh')
|
|
vim.keymap.set('n', '<S-ScrollWheelDown>', 'zl')
|