neovim-config/lua/keybinds.lua

31 lines
1.3 KiB
Lua

vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
-- Navigate buffers with ALT
vim.api.nvim_set_keymap('', '<A-Left>', '<C-w><Left>', { silent = true })
vim.api.nvim_set_keymap('', '<A-Up>', '<C-w><Up>', { silent = true })
vim.api.nvim_set_keymap('', '<A-Down>', '<C-w><Down>', { silent = true })
vim.api.nvim_set_keymap('', '<A-Right>', '<C-w><Right>', { silent = true })
vim.api.nvim_set_keymap('', '<C-p>', '<C-i>', { silent = true, noremap = true })
local print_namespace = function()
local cmd = 'bash -c "xq *.csproj -q RootNamespace"'
-- insert namespace NAMESPACE.PATH.TO.FILE; at the start of the file
local output = vim.fn.system(cmd):gsub('\n', '')
local relative_path = vim.fn.expand('%:h')
local short_path = relative_path:gsub('/', '.')
local namespace = output .. '.' .. short_path
if relative_path == '.' then
namespace = output
end
vim.cmd([[normal! gg]])
vim.cmd([[normal! }]])
vim.cmd([[normal! o]])
vim.api.nvim_put({ 'namespace ' .. namespace .. ';' }, 'c', true, true)
vim.cmd([[normal! o]])
end
vim.keymap.set('n', '<leader>n', print_namespace, { silent = true })
vim.api.nvim_set_keymap('n', '<leader><cr>', '<cmd>terminal<cr>i', { silent = true })