假设当前缓冲区是一个打开以进行编辑的文件,因此:e不显示E32: No file name.
我想猛拉一个或全部:
~\myfile.txtc:\foo\bar\myfile.txtmyfile.txt当我进入命令模式并键入
:!mycommand %
Run Code Online (Sandbox Code Playgroud)
我在当前文件上执行了我的命令(%扩展为当前文件名).是否有类似的构造扩展完整文件名(使用完整路径)?
我正在使用Windows.
有没有办法只将文件名复制/拉扯到剪贴板?根据这些来源:
Vim 中的 Yank 文件名/当前缓冲区的路径
如何扩展当前文件的完整路径以传递给 Vim 中的命令?
在 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>
Run Code Online (Sandbox Code Playgroud)
但是,我没有找到仅复制文件名的方法。我的意思是不带扩展名的文件名。这有可能吗?我尝试"%"过并且"%:。两者都不起作用。