使用目录映射将编辑缓冲区别名添加到 vim

Add edit buffer alias to vim with directory mapping

我想添加 VIM 的编辑缓冲区命令的自定义映射,但使用默认目录映射。

这是一个例子:

我有一个名为 javascript/backbone 的目录。每次我想访问此文件夹中的文件时,我都必须键入整个路径。我想做这样的事情:

:Ebackbone models/xyz.js.coffee

谁能告诉我如何在我的 .vimrc 中解决这个问题?这是我目前的 VIM 配置,以防:https://github.com/shikhar-j/.vim

最简单的情况是:

command! -nargs=1 Ebackbone javascript/backbone/<args>

如果您当前的工作目录可以更改,您可能需要使用 :execute 和前缀 expand('%:p:h') 来获取当前文件的路径。

此外,命令完成会很好;您可以通过自定义完成 (:help :command-complete) 和 glob().

来实现

如果您不反对插件,Tim Pope's Projectionist plugin 可以帮助您实现这一目标。

要使用此插件,请将 .projections.json 文件添加到项目的根目录,其中包含:

{
  "models/*.js.coffee": {
    "type": "backbone"
  }
}

这将允许您 运行 命令 Ebackbone 并用制表符完成每个匹配 glob models/*.js.coffee.

的文件