Есть ли способ только скопировать/вывести имя файла в буфер обмена? Согласно этим источникам:
Yank file name/path of current buffer in Vim
How can I expand the full path of the current file to pass to a command in Vim?
Get name of the current file in Vim
ясно, что expand()
функция использовать и следующее может быть определена:Скопируйте только имя файла без расширения в системный буфер обмена
" Full path
nnoremap <leader><leader>f :let @* = expand("%:p")<CR>
" File name, with extension.
nnoremap <leader><leader>n :let @* = expand("%:t")<CR>
" Extension.
nnoremap <leader><leader>e :let @* = expand("%:t:e")<CR>
" Parent directory, full.
nnoremap <leader><leader>p :let @* = expand("%:p:h")<CR>
Однако я не нашел способ копирования только имя файла. Я имею в виду имя файла без расширения. Это вообще возможно? Я попробовал "%"
и "%:
. Ничего не сработало.
Что вы хотите сделать в Unix, если файл не имеет расширения? Что, если имя файла * является * расширением (например, файл называется '.txt')? – Kevin
@Kevin: Ну, поскольку Vim чувствителен к регистру, я зарезервирую ' N' для копирования имени файла с расширением, используя' '%: t" '. Этот параметр скопирует имя файла, на котором не добавлено расширение. (Как '_vimrc' на моей машине Window) –
llinfeng