mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 05:18:12 +09:00
feat: add smart zellij navigation from vim
This commit is contained in:
@@ -29,6 +29,29 @@ let
|
|||||||
inherit desc;
|
inherit desc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkSmartWindowNav = key: direction: zellijDirection: desc: {
|
||||||
|
mode = "n";
|
||||||
|
inherit key;
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
local current_win = vim.api.nvim_get_current_win()
|
||||||
|
vim.cmd.wincmd("${direction}")
|
||||||
|
|
||||||
|
local at_edge = vim.api.nvim_get_current_win() == current_win
|
||||||
|
local in_zellij = vim.env.ZELLIJ ~= nil
|
||||||
|
local has_zellij_cli = vim.fn.executable("zellij") == 1
|
||||||
|
|
||||||
|
if at_edge and in_zellij and has_zellij_cli then
|
||||||
|
vim.system({ "zellij", "action", "move-focus-or-tab", "${zellijDirection}" })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
inherit desc;
|
||||||
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
@@ -98,14 +121,14 @@ in
|
|||||||
(mk "[l" "<cmd>lprev<CR>" "前のLocation Listへ")
|
(mk "[l" "<cmd>lprev<CR>" "前のLocation Listへ")
|
||||||
|
|
||||||
# Window navigation
|
# Window navigation
|
||||||
(mk "<C-h>" "<C-w>h" "左のウィンドウへ")
|
(mkSmartWindowNav "<C-h>" "h" "left" "左のウィンドウへ(端ならZellijペイン/タブへ)")
|
||||||
(mk "<C-j>" "<C-w>j" "下のウィンドウへ")
|
(mkSmartWindowNav "<C-j>" "j" "down" "下のウィンドウへ(端ならZellijペインへ)")
|
||||||
(mk "<C-k>" "<C-w>k" "上のウィンドウへ")
|
(mkSmartWindowNav "<C-k>" "k" "up" "上のウィンドウへ(端ならZellijペインへ)")
|
||||||
(mk "<C-l>" "<C-w>l" "右のウィンドウへ")
|
(mkSmartWindowNav "<C-l>" "l" "right" "右のウィンドウへ(端ならZellijペイン/タブへ)")
|
||||||
(mk "<C-Left>" "<C-w>h" "左のウィンドウへ")
|
(mkSmartWindowNav "<C-Left>" "h" "left" "左のウィンドウへ(端ならZellijペイン/タブへ)")
|
||||||
(mk "<C-Down>" "<C-w>j" "下のウィンドウへ")
|
(mkSmartWindowNav "<C-Down>" "j" "down" "下のウィンドウへ(端ならZellijペインへ)")
|
||||||
(mk "<C-Up>" "<C-w>k" "上のウィンドウへ")
|
(mkSmartWindowNav "<C-Up>" "k" "up" "上のウィンドウへ(端ならZellijペインへ)")
|
||||||
(mk "<C-Right>" "<C-w>l" "右のウィンドウへ")
|
(mkSmartWindowNav "<C-Right>" "l" "right" "右のウィンドウへ(端ならZellijペイン/タブへ)")
|
||||||
|
|
||||||
# Alternate file / previous file
|
# Alternate file / previous file
|
||||||
(mk "<leader><leader>" "<C-^>" "直前のファイルへ戻る")
|
(mk "<leader><leader>" "<C-^>" "直前のファイルへ戻る")
|
||||||
|
|||||||
Reference in New Issue
Block a user