Vim 加载插件但找不到命令

Vim load plugins but can't find command

我正在尝试使用此插件编写 markdown http://www.vim.org/scripts/script.php?script_id=3994, https://github.com/suan/vim-instant-markdown

我的Vim情况:

这里有一些奇怪的事情:

我不知道为什么?有人可以帮忙吗?


1 月 21 日更新。

我通过将 vim-markdown 的 ftdetect 复制到我的 ftdetect 文件夹并做一个小改动解决了这个问题

au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}   set filetype=mkd
au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx} set filetype=mkd  

小改动只是将 mkd 更改为 instant-markdown,将此文件类型文件保存到 ~/.vim/ftdetect/instant-markdown.vim 并将脚本 instant-markdown.vim 复制到~/.vim/after/ftplugin/instant-markdown/instant-markdown.vim 并且有效。

一些小问题是:


1 月 23 日更新

我理解后意味着加载缓慢。这是我目前的解决方案,我把它包装成一个病原体包,看起来还可以,有什么问题吗?

mac 01-23 16:13:38 instant-markdown $ pwd
/Users/xxx/.vim/bundle/instant-markdown 
mac 01-23 16:07:40
instant-markdown $ tree ./
./
├── ftdetect
│   └── instant-markdown.vim
└── ftplugin
    └── instant-markdown.vim
2 directories, 2 files 
mac 01-23 16:07:42 instant-markdown $ cat ftdetect/instant-markdown.vim 
" markdown filetype file
au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set    filetype=instant-markdown
au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx} set filetype=instant-markdown

1 月 26 日更新

正如ben所说,我仔细比较了语法高亮with/without插件,看来我真的错过了vim插件,但如果我只是将脚本复制到~/.vim/after/ftplugin/markdown, 当我打开 *.md 文件时缺少命令。

我发现如果我将 *.md 更改为 *.markdown 文件,命令就会出现,所以真正的问题似乎是 vim 无法将 *.md 文件识别为 markdown 文件。所以我将所有即时降价更改为降价,将我的文件夹放入 ~/.vim/bundle,然后我得到了 vim 默认降价突出显示,我做对了吗?本?

您安装的插件不正确。在您的辩护中,脚本页面在撰写本文时已过时,但 github 页面已更新。这个插件现在被设计成一个文件类型插件。每次打开 Markdown 文件时,它都应该加载,为该文件定义一个命令 本地到缓冲区 。当你编辑一个新文件时,你会得到一个新的缓冲区。这样命令只为降价文件定义。

但是您将其安装为常规(非文件类型特定)插件。因此,它只在空的启动缓冲区上加载一次。当您加载一个新文件时,该启动缓冲区及其拥有的命令会消失。

而不是 plugin 目录,您将 ftplugin 文件放在 ftpluginafter/ftplugin。该文件的名称应与其触发的文件类型相同,或者应放置在以文件类型命名的目录中。在这种情况下,github 上的安装说明说:

Copy the after/ftplugin/markdown/instant-markdown.vim file from this repo into your ~/.vim/after/ftplugin/markdown/ (creating directories as necessary), or follow your vim package manager's instructions.


编辑问题的新部分:

请注意插件如何建议安装在 after/ftplugin/markdown 目录中。 Vim 中的 "after" 目录用于提供对其他相同类型插件的添加或覆盖。顾名思义,"after" 目录中的脚本 运行 位于通常位置的脚本之后。因此,如果您有两个 "markdown" 脚本,一个在 ~/.vim/ftplugin/markdown/script1.vim 中,一个在 ~/.vim/after/ftplugin/markdown/script2.vim:script1.vim会先运行,然后script2.vim会运行 . script2.vim 因此可以使用 script1.vim 中定义的内容,或覆盖 script1.vim 中的设置等

语法文件、ftplugin文件、普通插件文件、缩进文件;所有这些都可以以这种方式定义覆盖。

另请注意在 ftplugin 目录中创建的 markdown 目录。这是为了允许使用任意文件名,在本例中为 "instant-markdown",即使它与文件类型的名称不匹配也是如此。我想你想保留这个好处;如果您将文件类型设置为 "instant-markdown",您的脚本将 运行,但正常脚本的 none 将 运行。例如,您不会得到任何语法高亮显示。

当 运行ning 文件类型插件时,Vim 将 运行 与文件类型同名的任何内容(例如 "markdown.vim"),它将 运行以文件类型为前缀的任何内容(例如 "markdown_preview.vim"),它将 运行 以文件类型命名的目录中的任何内容(例如 "markdown/instant-markdown.vim")。

我也遇到了类似的问题。我的问题是这样的:打开名为 README.md 的降价文件被发现支持此功能,其他文件 *.md 将响应我的错误,如:Not an Editor Command InstantMarkdownPreview。我不知道出了什么问题。

我目前的测试平台是我的MacOSX 10.9.

但幸运的是,我找到了解决这个问题的方法,你看,对于这个插件,我们可以从 http://www.vim.org/scripts/script.php?script_id=3994 and from https://github.com/suan/vim-instant-markdown 中找到它。但是这两个站点的安装说明并不相同。

我从上一个站点下载了插件并将其复制到 ~/.vim/plugin 中,一切都开始工作了。

希望对您有所帮助:-)