Repository navigation
Expand file tree
/
Copy pathkeymaps.lua
More file actions
56 lines (47 loc) · 2.26 KB
/
Copy pathkeymaps.lua
File metadata and controls
56 lines (47 loc) · 2.26 KB
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
local map = vim.keymap.set
map('n', '<space>', ':', { desc = 'Command line' })
map('i', 'jj', '<Esc>', { desc = 'Leave insert mode' })
map('n', 'n', 'nzz', { desc = 'Next match (centred)' })
map('n', 'N', 'Nzz', { desc = 'Previous match (centred)' })
map('n', '<leader>sv', '<cmd>vsplit<cr>', { desc = 'Split vertically' })
map('n', '<leader>sh', '<cmd>split<cr>', { desc = 'Split horizontally' })
map('n', '<leader>h', '<C-w>h', { desc = 'Window left' })
map('n', '<leader>j', '<C-w>j', { desc = 'Window down' })
map('n', '<leader>k', '<C-w>k', { desc = 'Window up' })
map('n', '<leader>l', '<C-w>l', { desc = 'Window right' })
map('n', '<leader>bk', function()
require('config.buffers').delete()
end, { desc = 'Delete buffer, keep window' })
map('n', '<leader>bh', '<cmd>hide<cr>', { desc = 'Hide window' })
map('n', '<leader>tc', '<cmd>tabnew<cr>', { desc = 'New tab' })
map('n', '<leader>tn', '<cmd>tabnext<cr>', { desc = 'Next tab' })
map('n', '<leader>tp', '<cmd>tabprevious<cr>', { desc = 'Previous tab' })
map('n', '<leader>tm', '<cmd>terminal<cr>', { desc = 'Terminal' })
-- Double <Esc> so a single <Esc> still reaches TUIs running inside (AI CLIs, fzf, lazygit)
map('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Leave terminal mode' })
map('n', '<leader>en', function()
vim.diagnostic.jump({ count = 1, float = true })
vim.cmd.normal({ 'zz', bang = true })
end, { desc = 'Next diagnostic' })
map('n', '<leader>ep', function()
vim.diagnostic.jump({ count = -1, float = true })
vim.cmd.normal({ 'zz', bang = true })
end, { desc = 'Previous diagnostic' })
map('n', '<leader>ed', vim.diagnostic.open_float, { desc = 'Diagnostic details' })
map('n', '<leader>fn', function()
vim.fn.setreg('+', vim.fn.expand('%:t'))
end, { desc = 'Copy file name' })
map('n', '<leader>pp', function()
require('config.package_scripts').pick()
end, { desc = 'Run a package.json script' })
map('n', '<leader>pl', function()
require('config.package_scripts').run_last()
end, { desc = 'Run the last script again' })
map('n', '<leader>px', function()
require('config.package_scripts').close()
end, { desc = 'Close the script panes' })
map('n', '<F5>', function()
local view = vim.fn.winsaveview()
vim.cmd([[keeppatterns %s/\s\+$//e]])
vim.fn.winrestview(view)
end, { desc = 'Strip trailing whitespace' })