neovim config part 2

This commit is contained in:
RafayAhmad7548 2025-04-25 20:25:48 +05:00
parent 21bcbd0bdc
commit 6f23ebd0f5
4 changed files with 368 additions and 61 deletions

View file

@ -1,4 +1,4 @@
-- General --
-- NOTE: General --
-- hjkl to ijkl remap
vim.keymap.set({ 'n', 'v', 'o' }, 'j', 'h', { desc = 'hjkl to ijkl' })
@ -6,14 +6,12 @@ vim.keymap.set({ 'n', 'v', 'o' }, 'h', 'i', { desc = 'hjkl to ijkl' })
vim.keymap.set({ 'n', 'v', 'o' }, 'i', 'k', { desc = 'hjkl to ijkl' })
vim.keymap.set({ 'n', 'v', 'o' }, 'k', 'j', { desc = 'hjkl to ijkl' })
-- indentation
vim.keymap.set('n', '<Tab>', '>>', { desc = 'tab indent ' })
vim.keymap.set('n', '<S-Tab>', '<<', { desc = 'S-tab unindent ' })
vim.keymap.set({ 'v', 'o' }, '<Tab>', '>', { desc = 'tab indent ' })
vim.keymap.set({ 'v', 'o' }, '<S-Tab>', '<', { desc = 'S-tab unindent ' })
-- scrolling
vim.keymap.set({ 'n', 'v', 'o' }, '<C-d>', '<C-d>zz', { desc = 'centered scroll' })
vim.keymap.set({ 'n', 'v', 'o' }, '<C-u>', '<C-u>zz', { desc = 'centered scroll' })
@ -24,11 +22,76 @@ vim.keymap.set({ 'n', 'v', 'o' }, '#', '_', { desc = '# start of line' })
-- save
vim.keymap.set('n', '<C-s>', ':w<CR>', { desc = 'ctrl-s save' })
-- Buffers --
vim.keymap.set('n', '<leader>l', ':tabnext<CR>', { desc = 'next buffer' })
vim.keymap.set('n', '<leader>j', ':tabprev<CR>', { desc = 'previous buffer' })
-- tabs
vim.keymap.set('n', '<leader><Tab>', ':tabnext<CR>', { desc = 'next buffer' })
vim.keymap.set('n', '<leader><S-Tab>', ':tabprev<CR>', { desc = 'previous buffer' })
-- delete word in insert mode
vim.keymap.set('i', '<C-BS>', '<C-w>', { desc = 'delete word in insert mode' })
-- tab luasnip
-- TODO: fix this for snippets
vim.keymap.del('i', '<Tab>', { desc = 'remove keymap cause not be worky' })
-- NOTE: Terminal
vim.keymap.set('n', '<C-l>', function ()
local buffers = vim.api.nvim_list_bufs()
local terminal_exists = false
for _, buf in ipairs(buffers) do
local buf_name = vim.api.nvim_buf_get_name(buf)
-- find all terminal buffers
if vim.api.nvim_buf_is_loaded(buf) and string.find(buf_name, '^term://') ~= nil then
-- find window of first terminal window if exists
local window_exists = false
local windows = vim.api.nvim_list_wins()
for _, win in ipairs(windows) do
if vim.api.nvim_win_get_buf(win) == buf then
vim.api.nvim_set_current_win(win)
window_exists = true
break
end
end
-- window dosnt exist so create and put existing terminal there
if not window_exists then
vim.cmd.vnew()
vim.api.nvim_win_set_width(0, 60)
vim.api.nvim_set_current_buf(buf)
end
terminal_exists = true
end
end
-- if no terminal then create new one
if not terminal_exists then
vim.cmd.vnew()
vim.cmd.term()
vim.api.nvim_win_set_width(0, 60)
end
vim.api.nvim_feedkeys('a', 'n', true)
end, { desc = 'open terminal', silent = true })
vim.keymap.set('t', '<C-j>', '<cmd>wincmd h<CR>', { desc = 'focus editor', silent = true })
vim.keymap.set('t', '<C-w>', '<C-d>', { desc = 'kill terminal' })
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>', { desc = 'normal mode in terminal' })
-- NOTE: Windows
-- this is weird because ctrl-i => Up & ctrl-k => Down in Kitty conf
vim.keymap.set({ 'n', 'v', 'o' }, '<Down><Up>', ':wincmd k<CR>', { desc = 'moving around window using ctrl-k ijkl', silent = true })
vim.keymap.set({ 'n', 'v', 'o' }, '<Down><Down>', ':wincmd j<CR>', { desc = 'moving around window using ctrl-k ijkl', silent = true })
vim.keymap.set({ 'n', 'v', 'o' }, '<Down><C-l>', ':wincmd l<CR>', { desc = 'moving around window using ctrl-k ijkl', silent = true })
vim.keymap.set({ 'n', 'v', 'o' }, '<Down><C-j>', ':wincmd h<CR>', { desc = 'moving around window using ctrl-k ijkl', silent = true })
-- NOTE: Telescope --
-- Telescope --
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<C-o>', builtin.find_files, { desc = 'Telescope find files' })
@ -39,4 +102,19 @@ vim.keymap.set('n', '<leader>/', function()
winblend = 10,
previewer = false,
})
end, { desc = '[/] Fuzzily search in current buffer' })
end, { desc = 'Fuzzily search in current buffer' })
local mappings = {
telescope_defaults = function(actions)
return {
i = {
["<esc>"] = actions.close,
["<C-k>"] = actions.move_selection_next,
["<C-i>"] = actions.move_selection_previous,
}
}
end
}
return mappings