nvim/lua/keymap.lua

65 lines
2.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- base
G.map({
{ 'n', '<leader>nh', ':nohlsearch<CR>' },
{ 'n', '<leader>rp', ':%s/' },
{ 'v', 'L', '$' },
{ 'v', 'H', '^' },
{ 'n', 'L', '$' },
{ 'n', 'H', '^' },
{ 'v', '>', '>gv' },
{ 'v', '<', '<gv' },
{ 'n', '>', '>>' },
{ 'n', '<', '<<' },
{ 'n', '?', ':set hlsearch<CR>?' },
{ 'n', '/', ':set hlsearch<CR>/' },
{ 'n', '<A-l>', ':tabn<CR>' },
{ 'n', '<A-h>', ':tabp<CR>' },
{ 'n', '<c-j>', '<c-w>j' },
{ 'n', '<c-h>', '<c-w>h' },
{ 'n', '<c-k>', '<c-w>k' },
{ 'n', '<c-l>', '<c-w>l' },
{ 'n', '<c-c>', ':q<CR>' },
{ 'n', '<c-S>', ':w !sudo tee %<CR>' },
{ 'n', '<c-q>', ':q!<CR>' },
{ 'v', '<cs-y>', '"+y' },
{ 'n', '<leader>y', 'ggyG' },
{ 'n', '<leader>p', 'ggpG' },
{ 'n', '<leader>v', 'ggVG' },
{ 'n', '<up>', ':res -5<CR>' },
{ 'n', '<down>', ':res +5<CR>' },
{ 'n', '<left>', ':vertical resize -5<CR>' },
{ 'n', '<right>', ':vertical resize +5<CR>' },
})
-- 终端 / Reasonix横屏→右侧45%屏宽竖屏→下方40%屏高),持久化 buffer按 c-t/c-i 切换显隐)
do
local terms = {} -- 缓存,复用同一个终端实例
local function split_term(cmd)
local ui = vim.api.nvim_list_uis()[1]
local tall = ui.height > ui.width
local name = cmd or '__shell__'
if not terms[name] or not terms[name]:is_open() then
terms[name] = require('toggleterm.terminal').Terminal:new({
direction = tall and 'horizontal' or 'vertical',
cmd = cmd,
size = tall and math.floor(ui.height * 0.4) or math.floor(ui.width * 0.45),
})
end
terms[name]:toggle()
end
G.map({
{ 'n', '<c-t>', function() split_term() end, { noremap = true } },
{ 'i', '<c-t>', function() split_term() end, { noremap = true } },
{ 'n', '<C-i>', function() split_term('reasonix') end, { noremap = true } },
})
end