Hello Stack Overflow vim用户, 我最近发现自己花了相当多的时间在我学校的计算机科学实验室编写代码。我已经在无数的Linux系统上配置了vim,并且从未遇到过这个错误:
E499: Empty file name for '%' or '#', only works with ":p:h"
在vim中的命令中使用%时,会发生此错误。我以前从未见过这个,但我会尽可能多地提供信息。这是我的.vimrc:
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
"Plugin 'scrooloose/nerdtree'
"Plugin 'bling/vim-airline'
"Plugin 'altercation/vim-colors-solarized'
call vundle#end()
filetype plugin indent on
我已经注释掉了最后几个插件,看看它们是否与错误有任何关联,但这似乎没什么帮助。我像往常一样使用Git来安装vim:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
我在运行之后所做的一切:PluginInstall安装插件,然后尝试使用:source%,导致错误。
这真让我难过,我希望能解决它,因为我想在这个CS类中使用我的自定义vim设置,但是我可以处理ViM甚至Vi的库存,或者它是否可以处理它......纳米。
编辑:使用Ubuntu 15.04
答案 0 :(得分:1)
这似乎与空%
有关。你可以做两件事:在调用vim时传递文件名:vim myscript.vim
然后调用:source %
,或者将文件名传递给:source
(:source myscript.vim
)。
如果您发出:help registers
,则会列出%
是包含当前文件名的只读寄存器。因此,如果您正在编辑没有文件名(未保存)的缓冲区,则此寄存器为空,因此您会收到错误消息。