nvim/lua/plugins/tmux.lua
Kenneth Benzie (Benie) e09dc1346c Introduce nvim-tmux-navigator
Also integrate with my custom setup using tmux window options to
communicate between nvim and tmux for which panes contain nvim
processes.
2024-03-02 17:39:06 +00:00

36 lines
1.2 KiB
Lua

return {
"alexghergh/nvim-tmux-navigation",
config = function()
local plugin = require('nvim-tmux-navigation')
plugin.setup({
disable_when_zoomed = true,
})
-- Integrate tmux navigation flag
local navigation_flag =
'@vim' .. vim.fn.substitute(vim.env.TMUX_PANE, '%', '\\%', 'g')
local function set_navigation_flag()
vim.fn.system('tmux set-window-option ' .. navigation_flag .. ' 1')
end
local function unset_navigation_flag()
vim.fn.system('tmux set-window-option -u ' .. navigation_flag)
end
-- [Un]set tmux window option to detect when to change pane.
set_navigation_flag()
local augroup = vim.api.nvim_create_augroup('tmux', { clear = true })
vim.api.nvim_create_autocmd('FocusGained', {
pattern = '*', group = augroup, callback = set_navigation_flag,
})
vim.api.nvim_create_autocmd('VimLeave', {
pattern = '*', group = augroup, callback = unset_navigation_flag,
})
-- Map nativation bindings
vim.keymap.set('n', "<C-h>", plugin.NvimTmuxNavigateLeft)
vim.keymap.set('n', "<C-j>", plugin.NvimTmuxNavigateDown)
vim.keymap.set('n', "<C-k>", plugin.NvimTmuxNavigateUp)
vim.keymap.set('n', "<C-l>", plugin.NvimTmuxNavigateRight)
end
}