From d0fcc0871caa8171f7947c3ef2a03aa28960f8fc Mon Sep 17 00:00:00 2001 From: Axel Navarro Date: Thu, 16 Apr 2026 14:48:10 -0300 Subject: [PATCH 1/4] feat(keymaps): add shortcuts to copy buffer file path to clipboard --- lua/lazyvim/config/keymaps.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index 9651e4e6..bf795081 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -94,6 +94,18 @@ map("n", "l", "Lazy", { desc = "Lazy" }) -- new file map("n", "fn", "enew", { desc = "New File" }) +-- copy file path +map("n", "fy", function() + local path = vim.fn.expand("%:p") + vim.fn.setreg("+", path) + vim.notify("Copied: " .. path) +end, { desc = "Copy File Path" }) +map("n", "fY", function() + local path = vim.fn.expand("%:~:.") + vim.fn.setreg("+", path) + vim.notify("Copied: " .. path) +end, { desc = "Copy Relative File Path" }) + -- location list map("n", "xl", function() local success, err = pcall(vim.fn.getloclist(0, { winid = 0 }).winid ~= 0 and vim.cmd.lclose or vim.cmd.lopen) From 1e9e0af884cb8eb941349deb984b7a527a7425d9 Mon Sep 17 00:00:00 2001 From: Axel Navarro Date: Thu, 16 Apr 2026 15:19:16 -0300 Subject: [PATCH 2/4] Update lua/lazyvim/config/keymaps.lua Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lua/lazyvim/config/keymaps.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index bf795081..7dadec76 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -97,11 +97,19 @@ map("n", "fn", "enew", { desc = "New File" }) -- copy file path map("n", "fy", function() local path = vim.fn.expand("%:p") + if path == "" then + vim.notify("No file path available for the current buffer", vim.log.levels.WARN) + return + end vim.fn.setreg("+", path) vim.notify("Copied: " .. path) end, { desc = "Copy File Path" }) map("n", "fY", function() local path = vim.fn.expand("%:~:.") + if path == "" then + vim.notify("No file path available for the current buffer", vim.log.levels.WARN) + return + end vim.fn.setreg("+", path) vim.notify("Copied: " .. path) end, { desc = "Copy Relative File Path" }) From fded1c6a19668c1f6713cc11847b6298ca850155 Mon Sep 17 00:00:00 2001 From: Axel Navarro Date: Thu, 16 Apr 2026 15:19:34 -0300 Subject: [PATCH 3/4] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lua/lazyvim/config/keymaps.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index 7dadec76..b12c3ea6 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -112,7 +112,7 @@ map("n", "fY", function() end vim.fn.setreg("+", path) vim.notify("Copied: " .. path) -end, { desc = "Copy Relative File Path" }) +end, { desc = "Copy Short File Path" }) -- location list map("n", "xl", function() From b3389dc854ca56446defc93f5a7820f3a716994c Mon Sep 17 00:00:00 2001 From: Axel Navarro Date: Thu, 16 Apr 2026 15:32:50 -0300 Subject: [PATCH 4/4] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lua/lazyvim/config/keymaps.lua | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index b12c3ea6..5c8b8a59 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -94,24 +94,22 @@ map("n", "l", "Lazy", { desc = "Lazy" }) -- new file map("n", "fn", "enew", { desc = "New File" }) +local function copy_file_path(modifier) + local path = vim.fn.expand(modifier) + if path == "" then + vim.notify("No file path available for the current buffer", vim.log.levels.WARN) + return + end + vim.fn.setreg("+", path) + vim.notify("Copied: " .. path) +end + -- copy file path map("n", "fy", function() - local path = vim.fn.expand("%:p") - if path == "" then - vim.notify("No file path available for the current buffer", vim.log.levels.WARN) - return - end - vim.fn.setreg("+", path) - vim.notify("Copied: " .. path) + copy_file_path("%:p") end, { desc = "Copy File Path" }) map("n", "fY", function() - local path = vim.fn.expand("%:~:.") - if path == "" then - vim.notify("No file path available for the current buffer", vim.log.levels.WARN) - return - end - vim.fn.setreg("+", path) - vim.notify("Copied: " .. path) + copy_file_path("%:~:.") end, { desc = "Copy Short File Path" }) -- location list