Difference between revisions of "How to copy path to current file/directory to system clipboard"

From Vifm Wiki
Jump to navigation Jump to search
(add filename w\o path)
(Update *nix and Windows sections to correspond better to each other)
Line 4: Line 4:
 
=== On *nix like operating systems using [https://sourceforge.net/projects/xclip/ xclip] ===
 
=== On *nix like operating systems using [https://sourceforge.net/projects/xclip/ xclip] ===
  
Commands to copy full paths to current directory and currently selected file
+
Commands to copy paths to current directory and currently selected file could
could look like this:
+
look like this:
  
 
<source lang="vim">
 
<source lang="vim">
Line 14: Line 14:
 
nnoremap yf :!echo -n %c:p | xclip %i<cr>
 
nnoremap yf :!echo -n %c:p | xclip %i<cr>
  
" yank current filename w\o 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>
 
</source>
 
</source>
  
 
=== On Windows using <code>clip</code> ===
 
=== On Windows using <code>clip</code> ===
  
Similar commands, but each has two versions for different types of slashes.
+
Similar commands, but those that operate on full paths have two versions for
 +
different types of slashes.
  
 
<pre>
 
<pre>
Line 30: Line 31:
  
 
" yank path to current file to Windows clipboard with forward slashes
 
" yank path to current file to Windows clipboard with forward slashes
nnoremap yf :!echo %"f:gs!\!/! %i | clip<cr>
+
nnoremap yf :!echo %"c:gs!\!/! %i | clip<cr>
  
 
" yank path to current directory to Windows clipboard with backward slashes
 
" yank path to current directory to Windows clipboard with backward slashes
nnoremap yF :!echo %"f %i | clip<cr>
+
nnoremap yF :!echo %"c %i | clip<cr>
 +
 
 +
" yank current filename without path to Windows clipboard
 +
nnoremap yn :!echo %"c %i | clip<cr>
 
</pre>
 
</pre>

Revision as of 05:56, 28 August 2014

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>

" yank current file path into the clipboard
nnoremap yf :!echo -n %c:p | xclip %i<cr>

" yank current filename without path into the clipboard
nnoremap yn :!echo -n %c | xclip %i<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>