mirror of
https://github.com/hyzendust/KickestEnd.nvim.git
synced 2026-02-15 05:21:14 +01:00
Update: <Tab>q to exit any mode and go back to normal mode. Telescope opens in normal mode by default. Press q to close Telescope windows
This commit is contained in:
@@ -22,6 +22,7 @@ return {
|
|||||||
-- See `:help telescope` and `:help telescope.setup()`
|
-- See `:help telescope` and `:help telescope.setup()`
|
||||||
require('telescope').setup {
|
require('telescope').setup {
|
||||||
defaults = {
|
defaults = {
|
||||||
|
initial_mode = 'normal', -- Start in normal mode instead of insert
|
||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = {
|
||||||
['<C-u>'] = false,
|
['<C-u>'] = false,
|
||||||
@@ -130,6 +131,7 @@ return {
|
|||||||
vim.keymap.set('n', '<leader>sf', function()
|
vim.keymap.set('n', '<leader>sf', function()
|
||||||
require('telescope.builtin').find_files {
|
require('telescope.builtin').find_files {
|
||||||
attach_mappings = function(_, map)
|
attach_mappings = function(_, map)
|
||||||
|
map('n', 'q', actions.close)
|
||||||
map('i', '<CR>', function(prompt_bufnr)
|
map('i', '<CR>', function(prompt_bufnr)
|
||||||
smart_open(prompt_bufnr)
|
smart_open(prompt_bufnr)
|
||||||
end)
|
end)
|
||||||
@@ -152,6 +154,7 @@ return {
|
|||||||
vim.keymap.set('n', '<leader>?', function()
|
vim.keymap.set('n', '<leader>?', function()
|
||||||
require('telescope.builtin').oldfiles {
|
require('telescope.builtin').oldfiles {
|
||||||
attach_mappings = function(_, map)
|
attach_mappings = function(_, map)
|
||||||
|
map('n', 'q', actions.close)
|
||||||
map('i', '<CR>', function(prompt_bufnr)
|
map('i', '<CR>', function(prompt_bufnr)
|
||||||
smart_open(prompt_bufnr)
|
smart_open(prompt_bufnr)
|
||||||
end)
|
end)
|
||||||
@@ -174,6 +177,7 @@ return {
|
|||||||
vim.keymap.set('n', '<leader><leader>', function()
|
vim.keymap.set('n', '<leader><leader>', function()
|
||||||
require('telescope.builtin').buffers {
|
require('telescope.builtin').buffers {
|
||||||
attach_mappings = function(_, map)
|
attach_mappings = function(_, map)
|
||||||
|
map('n', 'q', actions.close)
|
||||||
map('i', '<CR>', function(prompt_bufnr)
|
map('i', '<CR>', function(prompt_bufnr)
|
||||||
smart_open(prompt_bufnr)
|
smart_open(prompt_bufnr)
|
||||||
end)
|
end)
|
||||||
@@ -228,6 +232,10 @@ return {
|
|||||||
require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||||
winblend = 10,
|
winblend = 10,
|
||||||
previewer = false,
|
previewer = false,
|
||||||
|
attach_mappings = function(prompt_bufnr, map)
|
||||||
|
map('n', 'q', actions.close)
|
||||||
|
return true
|
||||||
|
end,
|
||||||
})
|
})
|
||||||
end, { desc = '[/] Fuzzily search in current buffer' })
|
end, { desc = '[/] Fuzzily search in current buffer' })
|
||||||
local function telescope_live_grep_open_files()
|
local function telescope_live_grep_open_files()
|
||||||
@@ -246,6 +254,7 @@ return {
|
|||||||
end
|
end
|
||||||
require('telescope.builtin').git_files {
|
require('telescope.builtin').git_files {
|
||||||
attach_mappings = function(_, map)
|
attach_mappings = function(_, map)
|
||||||
|
map('n', 'q', actions.close)
|
||||||
local actions = require 'telescope.actions'
|
local actions = require 'telescope.actions'
|
||||||
local action_state = require 'telescope.actions.state'
|
local action_state = require 'telescope.actions.state'
|
||||||
|
|
||||||
|
|||||||
@@ -328,8 +328,24 @@ local function smart_open_file(path)
|
|||||||
-- 3. Otherwise → open in a new tab
|
-- 3. Otherwise → open in a new tab
|
||||||
vim.cmd('tabedit ' .. vim.fn.fnameescape(path))
|
vim.cmd('tabedit ' .. vim.fn.fnameescape(path))
|
||||||
end
|
end
|
||||||
-- Remap gf to use smart_open_file
|
|
||||||
|
-- [[ Remap gf to use smart_open_file ]]
|
||||||
vim.keymap.set('n', 'gf', function()
|
vim.keymap.set('n', 'gf', function()
|
||||||
local path = vim.fn.expand '<cfile>' -- get file under cursor
|
local path = vim.fn.expand '<cfile>' -- get file under cursor
|
||||||
smart_open_file(path)
|
smart_open_file(path)
|
||||||
end, { desc = 'Smart gf: open file under cursor in new tab or reuse buffer' })
|
end, { desc = 'Smart gf: open file under cursor in new tab or reuse buffer' })
|
||||||
|
|
||||||
|
-- [[ Function to exit insert/visual/command/terminal modes ]]
|
||||||
|
local function tab_q_escape()
|
||||||
|
local mode = vim.api.nvim_get_mode().mode
|
||||||
|
if mode:match '[iIcR]' then
|
||||||
|
return vim.api.nvim_replace_termcodes('<Esc>', true, false, true)
|
||||||
|
elseif mode:match '[vV\x16]' then
|
||||||
|
return vim.api.nvim_replace_termcodes('<Esc>', true, false, true)
|
||||||
|
elseif mode:match 't' then
|
||||||
|
return vim.api.nvim_replace_termcodes('<C-\\><C-n>', true, false, true)
|
||||||
|
else
|
||||||
|
return '' -- normal mode, do nothing
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.keymap.set({ 'i', 'v', 't', 'n' }, '<Tab>q', tab_q_escape, { noremap = true, expr = true, silent = true })
|
||||||
|
|||||||
Reference in New Issue
Block a user