假设当前缓冲区是一个打开以进行编辑的文件,因此:e不显示E32: No file name.
我想猛拉一个或全部:
~\myfile.txtc:\foo\bar\myfile.txtmyfile.txt在我的vim插件中,我有两个文件:
myplugin/plugin.vim
myplugin/plugin_helpers.py
Run Code Online (Sandbox Code Playgroud)
我想从plugin.vim导入plugin_helpers(使用vim python支持),所以我相信我首先需要将我的插件目录放在python的sys.path上.
我如何(在vimscript中)获取当前正在执行的脚本的路径?在python中,这是__file__.在红宝石中,它是__FILE__.我通过谷歌搜索找不到任何类似的vim,可以这样做吗?
注意:我不是在寻找当前编辑的文件("%:p"和朋友).
是否有一种简单的方法(在VIM中)使用当前名称加上附加短语保存当前打开的文件?
IE,来自/home/affert/类型vim /data/folder/file1.txt
然后保存文件,/data/folder/file1.txt_BACKUP而无需复制和粘贴文件名?
上下文:我有一个文件,其中包含其他文件夹中其他文件的完整路径.我用来ctrl+W, ctrl+F在新窗口中打开文件.这就是为什么我不想复制和粘贴.顺便说一下,文件夹和文件名要长很多,所以自己键入它们并不是一个有用的选项.
我正在尝试在Vim中找到我正在编辑的文件的名称.所以我可以用它来映射F5来编译这个文件.如果我能识别文件格式并选择相应的编译器,那当然会很棒,但实际上并不是必需的.如果我找到文件的名称,我可以自己做.但我真的找不到任何方法来获取我正在编辑的文件的名称.
我知道这个:make命令,并且已经映射过了,但对于小脚本/测试程序,我真的不想先写一个简单的makefile.
有没有办法只将文件名复制/拉扯到剪贴板?根据这些来源:
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)
但是,我没有找到仅复制文件名的方法。我的意思是不带扩展名的文件名。这有可能吗?我尝试"%"过并且"%:。两者都不起作用。