![在目录中执行 vi 不会列出文件](https://linux22.com/image/845871/%E5%9C%A8%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%89%A7%E8%A1%8C%20vi%20%E4%B8%8D%E4%BC%9A%E5%88%97%E5%87%BA%E6%96%87%E4%BB%B6.png)
这似乎是 Ubuntu 13.10 中潜伏的一个新错误(功能?)。当我vi
在目录中执行时,它不会列出我可以使用箭头键导航到的文件;它只显示一个空白屏幕,并显示消息“非法文件名”。
现在很麻烦,因为ls
如果我不知道要编辑哪个文件,我必须先进入目录,然后在命令参数中的目录后输入整个文件名。
当我进入vi
tmp 等时,甚至在我有写权限的主目录中,都会发生这种情况。
答案1
您所描述的行为是由错误网络,这是处理文件浏览的插件。
更新到插件的最新版本可以修复此问题。
为此,只需下载netrw 的最新版本,在 vim 中打开并执行 source 命令。这样会将插件提取到你的~/.vim
目录中,它会在系统有缺陷的版本之前加载。
下载文件:
wget http://www.drchip.org/astronaut/vim/vbafiles/netrw.vba.gz
打开方式vim
:
vim netrw.vba.gz
在 vim 中,获取它:
:so %
之后,关闭 vim。然后,再次享受浏览目录的乐趣。
更新:在一个盒子上,这给了我一个错误,说无法关闭最后一个窗口。对插件没有影响,之后插件运行正常。
第二次更新:此版本的网络期望 vim 版本具有剪贴板能力。
你可以通过运行来检查你的版本是否具有此功能vim --version
。输出可能会有-clipboard
,这意味着该功能未启用。
要获得支持剪贴板的编译版本,请安装任何带有 GUI 的 vim 版本,它还将使用vim
带有剪贴板支持。我用过vim-gtk作为测试用例。
答案2
我尝试按照 drc 给出的步骤进行操作,但出现了奇怪的错误(可能是由于缺乏剪贴板支持)。
以下内容在 ubuntu 13.10 docker 镜像中对我有用,只使用标准版本的 Vim,不支持剪贴板:
vim /etc # blank screen
wget http://www.vim.org/scripts/download_script.php?src_id=21427 -O netrw.vba.gz
# install the vimball
# may throw error E444, but this can seemingly can be ignored
vim netrw.vba.gz +"so %" +q
vim /etc # works fine
请注意,我所做的与 drc 不同的地方在于我使用了稍旧版本的 netrw 插件,即 2014-02-04 上传到 vim.org 的插件。