A Neovim plugin that solves a common developer pain point: how to quickly share code locations with colleagues?
copypath-demo.mp4
- Copy GitHub/GitLab URLs with line numbers when in a Git repo
https://github.com/user/repo/blob/main/file.lua#L42
- Fallback to relative path + line number outside Git repos
src/file.lua:42
- Automatic SSH/HTTPS URL conversion
git@host:org/repo => https://host/org/repo
Using lazy.nvim:
{ 'elliotxx/copypath.nvim' }
Using packer.nvim:
use {
'elliotxx/copypath.nvim',
config = function()
require('copypath').setup({
-- Your custom config here
})
end
}
require('copypath').setup({
-- Default options
default_mappings = true, -- Set to false to disable default mappings
mapping = 'Y', -- Default mapping to trigger copy
notify = true, -- Show notification when path is copied
})
By default, pressing Y
in normal mode will:
- If in a git repository:
- Copy the web URL (e.g., https://github.com/user/repo/blob/main/file.lua#L42)
- Supports various Git platforms (GitHub, GitLab, etc.)
- If not in a git repository:
- Copy the relative path with line number (e.g., src/file.lua:42)
- Falls back to absolute path if relative path is not available
MIT