LazyVim で開いているファイルのパスをクリップボードにコピーします。
・絶対パス cpa
・相対パス cpr
・ファイル名 cpf
環境
・Omarchy v3.1.4
・LazyVim
下記を lua/config/keymaps.lua に追加します。
-- 開いているファイルのパスをクリップボードにコピーする。
local function copy_path(type)
local fullpath = vim.fn.expand("%:p")
if fullpath == "" or fullpath:match("^%[.*%]$") then
vim.notify("No file is open", vim.log.levels.WARN)
return
end
local root = require("lazyvim.util").root.get({ path = fullpath })
local path
if type == "absolute" then
path = fullpath
elseif type == "relative" then
if root and fullpath:find(root, 1, true) == 1 then
path = fullpath:sub(#root + 2) -- +2 for the slash
else
path = vim.fn.expand("%")
end
elseif type == "filename" then
path = vim.fn.expand("%:t")
end
vim.fn.setreg("+", path)
vim.notify("Copied: " .. path, vim.log.levels.INFO)
end
vim.keymap.set("n", "<leader>cpa", function()
copy_path("absolute")
end, { desc = "Copy absolute path" })
vim.keymap.set("n", "<leader>cpr", function()
copy_path("relative")
end, { desc = "Copy project-relative path" })
vim.keymap.set("n", "<leader>cpf", function()
copy_path("filename")
end, { desc = "Copy filename" })
以上です。
▼この記事がいいね!と思ったらブックマークお願いします
