使用VcurCommand Vim插件与Mercurial的问题

时间:2010-09-22 16:46:54

标签: vim mercurial vcscommand

我刚刚安装了VCSCommand,每当我尝试运行命令时,我都会收到“No suitable plugin”错误。我在Vim中加载了一个文件,该文件位于一个带有mercurial存储库的目录中。

我找到了一些解释,如果你不在“工作目录”中,可能会显示“No suitable plugin”错误,我认为你正在编辑的文件应该在“工作目录”中从存储库中检出的文件。问题可能是(作为Hg的新用户)我没有正确地理解Mercurial。我正在编辑的文件位于我创建Hg存储库的目录中,只是为了跟踪我的本地更改。我发出的命令是'hg init',然后'hg add',我一直在使用'hg commit','hg log'和'hg diff'。这个目录不是回购的“工作目录”吗?假设这是问题,如何将hg repo中的文件“签出”到工作目录中?

或者上面的问题根本就不是“No suitable plugin”错误的问题。我在正确的插件目录中有vcshg.vim文件,所以插件就在那里。

谢谢,任何帮助表示赞赏。

更新:万一我使用mercurial是问题,我尝试创建我的主要mercurial repo的'克隆'并在克隆中编辑文件。仍然相同'没有合适的插件'。信息。

另外:我遗漏了我在Windows上运行的原始消息,我认为我已经跟踪了字符串中不正确引用转义码的情况。一旦我获得完全解决方案,将提供进一步的更新。

2 个答案:

答案 0 :(得分:3)

我确实让VCSCommand运行良好。我认为这个问题与Mercurial无关,而是与VCSCommand中的问题有关,在Windows上引用了系统命令。至少那是主要问题。

为了让VCSCommand正常工作,我首先确保变量b:VCSCommandVCSType设置为'HG'。由于某些原因它没有被设置,这就是为什么我得到'No suitable plugin'错误。

其次,我必须修改vcshg.vim中的一行。 s:Executable()函数由一行'return'组成。 。 。 '功能。系统调用周围的shellescape()包装器引用不当;我删除后它工作得很好。 (对于Mercurial以外的系统,vcsXX.vim文件中可能存在同样的问题,我没有检查过。)

我认为这个引用问题仅存在于Windows上,并且可能已经出现,因为主开发人员没有要测试的Windows机器。 。 。

答案 1 :(得分:0)

首先回答“工作目录”问题:您的存储库 是您的working directory。与cvs / svn不同,您不需要签出要编辑的文件。你只需编辑。

(FYI hg将其update命令别名为checkoutco以帮助svn用户,但hg update是一个非常不同的动物。)

在不知道您的完整环境(平台,vim安装等)的情况下,我只能猜测“没有合适的插件”错误是由于您的VCSCommand文件不在正确的位置。我用cp VCSCommand/plugin/* ~/.vim/plugin/上的古代vim 7.2和vim {h}回复中的:VCSStatus文件尝试了最新版本1.99.42,然后{{1}}向我显示了正确的结果。

如果您有VCSCommand支持的其他VCS(cvs,svn,svk,git,bzr),请在其中一个存储库中尝试并查看是否收到相同的错误。如果你这样做,那肯定是一个VCSCommand安装问题。