Si vous voulez mettre le tampon courant de nom de fichier dans votre système au niveau du presse-papiers, essayez de modifier le registre pour @+:
" relative path
:let @+ = expand("%")
" full path
:let @+ = expand("%:p")
" just filename
:let @+ = expand("%:t")
Edit 20140421:
J'ai souvent utiliser, de sorte que j'ai créé quelques raccourcis. Linux Vims apparemment fonctionnent légèrement différemment de Mac Vims, donc il existe un cas particulier. Si vous placez le code suivant dans votre ~/.vimrc
:
" copy current file name (relative/absolute) to system clipboard
if has("mac") || has("gui_macvim") || has("gui_mac")
" relative path (src/foo.txt)
nnoremap <leader>cf :let @*=expand("%")<CR>
" absolute path (/something/src/foo.txt)
nnoremap <leader>cF :let @*=expand("%:p")<CR>
" filename (foo.txt)
nnoremap <leader>ct :let @*=expand("%:t")<CR>
" directory name (/something/src)
nnoremap <leader>ch :let @*=expand("%:p:h")<CR>
endif
" copy current file name (relative/absolute) to system clipboard (Linux version)
if has("gui_gtk") || has("gui_gtk2") || has("gui_gnome") || has("unix")
" relative path (src/foo.txt)
nnoremap <leader>cf :let @+=expand("%")<CR>
" absolute path (/something/src/foo.txt)
nnoremap <leader>cF :let @+=expand("%:p")<CR>
" filename (foo.txt)
nnoremap <leader>ct :let @+=expand("%:t")<CR>
" directory name (/something/src)
nnoremap <leader>ch :let @+=expand("%:p:h")<CR>
endif
Par exemple, <leader>cf
copie le chemin d'accès relatif du tampon courant (la valeur par défaut est le leader de barre oblique inverse (\
)). J'ai souvent de les utiliser pour exécuter des commandes sur un fichier ou d'autres choses à faire sur la ligne de commande. Je n'utilise pas vraiment le dernier nom de fichier / nom du répertoire souvent.
Vous pourriez envisager de plus intuitive mappages comme <leader>cfr
par rapport, <leader>cfa
d'absolu, <leader>cff
juste pour le nom de fichier, <leader>cfd
pour le répertoire.