From 29320201a41aa286457f74ad65a8b9b0233450a5 Mon Sep 17 00:00:00 2001 From: "markus.dieckmann" Date: Tue, 16 Jun 2026 14:33:10 +0200 Subject: [PATCH] window picker --- nvim/lua/config/keymap.lua | 29 +++++++++++++++++++++++++++-- nvim/lua/plugins/window-picker.lua | 9 +++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 nvim/lua/plugins/window-picker.lua diff --git a/nvim/lua/config/keymap.lua b/nvim/lua/config/keymap.lua index cb32878..5956485 100644 --- a/nvim/lua/config/keymap.lua +++ b/nvim/lua/config/keymap.lua @@ -1,2 +1,27 @@ -vim.keymap.set("n", "-", "Oil --float", {desc="Open Parent Dir in Oil"}) -vim.keymap.set("n", "l", "Lazy", {desc="Open Lazy"}) +vim.keymap.set("n", "-", "Oil --float", { desc = "Open Parent Dir in Oil" }) +vim.keymap.set("n", "l", "Lazy", { desc = "Open Lazy" }) + +vim.keymap.set("n", "wp", function() + local entry = require("oil").get_cursor_entry() + if entry.type ~= "file" then + return + end + local dir = require("oil").get_current_dir() + require("oil").close({ exit_if_last_buf = false }) + local win = require("window-picker").pick_window({ + filter_rules = { + autoselect_one = true, + include_current_win = true, + }, + }) + + if win then + vim.api.nvim_set_current_win(win) + local path = vim.fs.joinpath(dir, entry.name) + vim.cmd.edit(path) + end +end, { + desc = "Open with window picker", + buffer = true, + nowait = true, +}) diff --git a/nvim/lua/plugins/window-picker.lua b/nvim/lua/plugins/window-picker.lua new file mode 100644 index 0000000..1ebd883 --- /dev/null +++ b/nvim/lua/plugins/window-picker.lua @@ -0,0 +1,9 @@ +return { + "s1n7ax/nvim-window-picker", + name = "window-picker", + event = "VeryLazy", + version = "2.*", + config = function() + require("window-picker").setup() + end, +}