Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 仅将不带扩展名的文件名复制到系统剪贴板_Vim - Fatal编程技术网

Vim 仅将不带扩展名的文件名复制到系统剪贴板

Vim 仅将不带扩展名的文件名复制到系统剪贴板,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> " E

有没有办法只将文件名复制/拖动到剪贴板?根据这些来源:



显然,
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>
“完整路径
nnoremap f:let@*=展开(“%:p”)
“文件名,带扩展名。
nnoremap n:let@*=展开(“%:t”)
“延期。
nnoremap e:let@*=展开(“%:t:e”)
“父目录,已满。
nnoremap p:let@*=展开(“%:p:h”)
但是,我没有找到只复制文件名的方法。我是说文件名 没有扩展。这可能吗?我尝试了
“%”
“%:
。两者都不起作用

expand("%:t:r")
做你想做的,但是凯文提出了很好的观点

请参见
:帮助文件名修改器

做你想做的,但是凯文提出了很好的观点


请参见
:help filename modifiers

如果文件没有扩展名,您想在Unix上做什么?如果文件名是扩展名(例如,文件名为
.txt
)?@Kevin:嗯,由于Vim区分大小写,我将保留
N
,以便使用
“%:t复制带扩展名的文件名“
。此选项将复制没有扩展名的文件名。(如我的Windows计算机上的
\u vimrc
)如果文件没有扩展名,您希望在Unix上执行什么操作?如果文件名是扩展名(例如,文件名为
.txt
)?凯文:嗯,由于Vim区分大小写,我将保留
N
,以便使用
“%:t”
复制扩展名为的文件名。此选项将复制没有扩展名的文件名。(就像我的窗口机器上的vimrc
)谢谢你指出这一点。对于@Kevin的观点,正如我在Windows上测试的那样,
expand(“%:t”)
将复制
\u vimrc
的文件名,这正是他想要的。对于Linux,我相信是这样。感谢您指出这一点。对于@Kevin的观点,正如我在Windows上测试的那样,
expand(“%:t”)
将复制
\u vimrc
的文件名,这正是他想要的。对于Linux,我相信是这样。