对于完全更新的 Windows 7 64 位上的 gVim 7.3.46(我运行 gVim 7.3.46,因为它向 Windows 上下文菜单添加了一个可靠的“使用 Vim 编辑”实例。)
尽管阅读了大量文章(其中许多重复了其他文章),但如果我不使用 Pathogen,我无法让 Pathogen 加载已经可以正常工作的 vim 插件。
问题似乎出在 Pathogen 的“bundle”文件夹的位置,如下所示:
· 如果我将 mru.vim(最近使用的文件)插件放在“D:\Program Files (x86)\Vim\vim73\plugin”中,那么 MRU 工作得很好——键入 :MRU 返回最近的列表使用过的文件
.如果我将 mru.vim 放在名为“bundle”的文件夹中,然后将 bundle 文件夹放在“D:\Program Files (x86)\Vim\vimfiles”或下面列出的其他位置,键入 MRU 会返回“E492:不是编辑器命令:MRU"
我的环境:
· 在 Windows 7 64 位中,Vim/gVim 7.3.46 安装在“D:\Program Files (x86)\Vim\vim73\gvim.exe”(是的,“D”,而不是“C”) .
· 在 gVIM 中,键入 :e $VIM 返回以下四行:
../
vim73/
vimfiles/
_vimrc
· 在“D:\Program Files (x86)\Vim\vimfiles\autoload\”中,我有 pathogen.vim。在这个位置 gVim 启动时没有错误,输入 :pathogen#helptags() 也没有返回错误(我读过的一篇文章指出命令是判断 Pathogen 是否正确安装的一种方法)。
· 我的 _vimrc 文件包含以下行:
syntax on
execute pathogen#infect()
filetype plugin indent on
我的问题:
我已经尝试将包含 mru.vim 的包文件夹复制到:
· D:\Program Files (x86)\Vim\vimfiles(据说是 Windows 的“正确”位置)
· D:\Program Files (x86)\Vim
· D:\Program Files (x86)\Vim\vim73
多篇文章将该列表中的第一个条目标识为 Windows 系统中捆绑文件夹的正确位置。也就是说,在 Windows 中,与 *ix 不同,显然不会将 bundle 文件夹“埋葬”在 *ix .vim 文件夹或 Windows ..\users[userName] 文件夹或类似文件夹中的某处(?)
“bundle”的所有这些位置都会对键入 :MRU 产生相同的响应——“E492:不是编辑器命令:MRU”。
我已经无计可施了。有什么想法吗?
(顺便说一下,谢谢,但我不想使用 Vundle/Github/Curl 或任何其他与网络相关的解决方案。我没有使用那么多 gVim 插件,我想下载和使用我使用的插件自己复制到捆绑文件夹中,而不是让不需要的网络进程参与其中。)
干杯,感谢您的帮助, 莱利 旧金山国际机场
最佳答案
mru.vim 应该放在 bundle 文件夹中,路径为
D:\Program Files (x86)\Vim\vimfiles\bundle\mru\plugin\mru.vim
虽然它真的应该放在你的主目录中的 vimfiles 中,而不是 Program Files
$HOME\vimfiles\bundle\mru\plugin\mru.vim
Pathogen 使得 bundle 中的每个文件夹都是 vim 运行时路径的一部分。这允许 bundle 文件夹中的每个插件都有一个干净的环境来存储所有相关文件。
例如,如果您有两个具有多个文件的插件(例如,它们都带有文档)。
然后 vimfiles 文件夹的文件结构看起来像这样。
vimfiles/
plugin/
plugin1.vim
plugin2.vim
doc/
plugin1.txt
plugin2.txt
但是当您想要删除一个插件时会发生什么,您需要找到每个文件(并且您可能会遗漏一些文件)。
安装了 Pathogen 后,您的目录结构可能看起来像这样。
vimfiles/
bundle/
plugin1/
plugin/
plugin1.vim
doc/
plugin1.txt
plugin2/
plugin/
plugin2.vim
doc/
plugin2.txt
Pathogen 将 bundle 文件夹下的所有文件夹附加到 vim 运行时路径。这允许 vim 找到文件,而 vim 更聪明的是它不在通常的地方。
这还可以更轻松地删除插件。您不必去搜索插件附带的所有文件,您只需要从捆绑文件夹中删除相关文件夹即可。
只是为了完成。 (如果你不想的话,你不需要这样做)
安装。
如果您使用的是 git,您现在可以转到 vim-scripts 的 github 页面并找到你想要的插件。由于您对使用 mru 感兴趣,mru 插件的链接是 https://github.com/vim-scripts/mru.vim
现在要安装插件,您只需要进入 bundle 文件夹并运行
git clone https://github.com/vim-scripts/mru.vim
vim 脚本存储库中的所有脚本都具有病原体期望的正确结构,因此在运行该命令后,您就完成了插件的安装。
关于windows - 看了很多,还是无法让 Pathogen 在 Windows 下加载插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366142/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我在pry中定义了一个函数:to_s,但我无法调用它。这个方法去哪里了,怎么调用?pry(main)>defto_spry(main)*'hello'pry(main)*endpry(main)>to_s=>"main"我的ruby版本是2.1.2看了一些答案和搜索后,我认为我得到了正确的答案:这个方法用在什么地方?在irb或pry中定义方法时,会转到Object.instance_methods[1]pry(main)>defto_s[1]pry(main)*'hello'[1]pry(main)*end=>:to_s[2]pry(main)>defhello[2]pry(main)