Difference between revisions of "How to copy path to current file/directory to system clipboard"
Jump to navigation
Jump to search
On Windows using
(basename -> rootname) |
(Add displaying yanked text) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
<source lang="vim"> | <source lang="vim"> | ||
" yank current directory path into the clipboard | " yank current directory path into the clipboard | ||
− | nnoremap yd :!echo -n %d | xclip %i<cr> | + | nnoremap yd :!echo -n %d | xclip %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr> |
" yank current file path into the clipboard | " yank current file path into the clipboard | ||
− | nnoremap yf :!echo -n %c:p | xclip %i<cr> | + | nnoremap yf :!echo -n %c:p | xclip %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr> |
" yank current filename without path into the clipboard | " yank current filename without path into the clipboard | ||
− | nnoremap yn :!echo -n %c | xclip %i<cr> | + | nnoremap yn :!echo -n %c | xclip %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr> |
− | " yank | + | " yank root of current file's name into the clipboard |
− | nnoremap yr :!echo -n %c:r | xclip %i<cr> | + | nnoremap yr :!echo -n %c:r | xclip %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr> |
+ | </source> | ||
+ | |||
+ | === On *nix like operating systems using [http://www.vergenet.net/~conrad/software/xsel/ xsel] === | ||
+ | |||
+ | Commands to copy paths to current directory and currently selected file into | ||
+ | both primary and selection clipboards could look like this: | ||
+ | |||
+ | <source lang="vim"> | ||
+ | " yank current directory path into primary and selection clipboards | ||
+ | nnoremap yd :!echo -n %d | xsel --input --primary %i && | ||
+ | \ echo -n %d | xsel --clipboard --input %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr> | ||
+ | |||
+ | " yank current file path into primary and selection clipboards | ||
+ | nnoremap yf :!echo -n %c:p | xsel --input --primary %i && | ||
+ | \ echo -n %c:p | xsel --clipboard --input %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr> | ||
+ | |||
+ | " yank current filename without path into primary and selection clipboards | ||
+ | nnoremap yn :!echo -n %c | xsel --input --primary %i && | ||
+ | \ echo -n %c | xsel --clipboard --input %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr> | ||
+ | |||
+ | " yank root of current file's name into primary and selection clipboards | ||
+ | nnoremap yr :!echo -n %c:r | xsel --input --primary %i && | ||
+ | \ echo -n %c:r | xsel --clipboard --input %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr> | ||
+ | </source> | ||
+ | |||
+ | === On macOS using [https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/pbcopy.1.html pbcopy] === | ||
+ | |||
+ | Commands to copy paths to current directory and currently selected file could | ||
+ | look like this: | ||
+ | <source lang="vim"> | ||
+ | " yank current directory path into the clipboard | ||
+ | nnoremap yd :!echo -n %d | pbcopy %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr> | ||
+ | |||
+ | " yank current file path into the clipboard | ||
+ | nnoremap yf :!echo -n %c:p | pbcopy %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr> | ||
+ | |||
+ | " yank current filename without path into the clipboard | ||
+ | nnoremap yn :!echo -n %c | pbcopy %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr> | ||
+ | |||
+ | " yank root of current file's name into the clipboard | ||
+ | nnoremap yr :!echo -n %c:r | pbcopy %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr> | ||
</source> | </source> | ||
Line 27: | Line 68: | ||
different types of slashes. | different types of slashes. | ||
− | < | + | <source lang="vim"> |
" yank current directory path to Windows clipboard with forward slashes | " yank current directory path to Windows clipboard with forward slashes | ||
nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr> | nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr> | ||
Line 42: | Line 83: | ||
" yank current filename without path to Windows clipboard | " yank current filename without path to Windows clipboard | ||
nnoremap yn :!echo %"c %i | clip<cr> | nnoremap yn :!echo %"c %i | clip<cr> | ||
− | </ | + | |
+ | " yank root of current file's name to Windows clipboard | ||
+ | nnoremap yr :!echo -n %c:r | clip<cr> | ||
+ | </source> | ||
+ | |||
+ | [[Category:HOWTO]] |
Revision as of 11:55, 25 March 2020
This is a matter of communicating current path from Vifm to system buffer via external command.
On *nix like operating systems using xclip
Commands to copy paths to current directory and currently selected file could look like this:
" yank current directory path into the clipboard
nnoremap yd :!echo -n %d | xclip %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
" yank current file path into the clipboard
nnoremap yf :!echo -n %c:p | xclip %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" yank current filename without path into the clipboard
nnoremap yn :!echo -n %c | xclip %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
" yank root of current file's name into the clipboard
nnoremap yr :!echo -n %c:r | xclip %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr>
On *nix like operating systems using xsel
Commands to copy paths to current directory and currently selected file into both primary and selection clipboards could look like this:
" yank current directory path into primary and selection clipboards
nnoremap yd :!echo -n %d | xsel --input --primary %i &&
\ echo -n %d | xsel --clipboard --input %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
" yank current file path into primary and selection clipboards
nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&
\ echo -n %c:p | xsel --clipboard --input %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" yank current filename without path into primary and selection clipboards
nnoremap yn :!echo -n %c | xsel --input --primary %i &&
\ echo -n %c | xsel --clipboard --input %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
" yank root of current file's name into primary and selection clipboards
nnoremap yr :!echo -n %c:r | xsel --input --primary %i &&
\ echo -n %c:r | xsel --clipboard --input %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr>
On macOS using pbcopy
Commands to copy paths to current directory and currently selected file could look like this:
" yank current directory path into the clipboard
nnoremap yd :!echo -n %d | pbcopy %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
" yank current file path into the clipboard
nnoremap yf :!echo -n %c:p | pbcopy %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" yank current filename without path into the clipboard
nnoremap yn :!echo -n %c | pbcopy %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
" yank root of current file's name into the clipboard
nnoremap yr :!echo -n %c:r | pbcopy %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr>
On Windows using clip
Similar commands, but those that operate on full paths have two versions for different types of slashes.
" yank current directory path to Windows clipboard with forward slashes
nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr>
" yank current directory path to Windows clipboard with backward slashes
nnoremap yP :!echo %"d %i | clip<cr>
" yank path to current file to Windows clipboard with forward slashes
nnoremap yf :!echo %"c:gs!\!/! %i | clip<cr>
" yank path to current directory to Windows clipboard with backward slashes
nnoremap yF :!echo %"c %i | clip<cr>
" yank current filename without path to Windows clipboard
nnoremap yn :!echo %"c %i | clip<cr>
" yank root of current file's name to Windows clipboard
nnoremap yr :!echo -n %c:r | clip<cr>