Ruby on rails 如何';设置路径';从目录打开Vim时是否自动执行?

Ruby on rails 如何';设置路径';从目录打开Vim时是否自动执行?,ruby-on-rails,macos,vim,macvim,Ruby On Rails,Macos,Vim,Macvim,我正试图让:一个(例如,在控制器和规范之间切换)在vim rails中工作。如果我导航到我的rails项目,运行vim.,打开控制器文件并运行:a,我会得到错误: E345: Can't find file "app/controllers/widgets_controller.rb" in path 如果我随后显式设置路径: :set path=/Users/me/Documents/Code/my-project 然后:A按预期工作。当我使用Vim打开目录时,如何设置初始路径?不完全是

我正试图让
:一个
(例如,在控制器和规范之间切换)在vim rails中工作。如果我导航到我的rails项目,运行
vim.
,打开控制器文件并运行
:a
,我会得到错误:

E345: Can't find file "app/controllers/widgets_controller.rb" in path 
如果我随后显式设置路径:

:set path=/Users/me/Documents/Code/my-project

然后
:A
按预期工作。当我使用Vim打开目录时,如何设置初始路径?

不完全是在打开目录时设置的:因为您似乎正在处理项目,请尝试一下

使用它,您可以在进入或离开项目时执行任意命令

从插件描述中:

您可以使用此插件的基本功能设置 频繁访问的文件便于导航。文件列表 将显示在Vim左侧的窗口中 窗口,您可以按或双击 列表中的文件名以打开文件。这类似于 有些IDE我用过。我发现这比其他方法更容易使用 必须使用文件资源管理器浏览目录层次结构。 它还消除了对缓冲区资源管理器的需要,因为 在Vim窗口的左侧有您的文件列表


这就是我为每个项目创建本地.vimrc文件所做的:

  • 在我的~/.vimrc文件中,我定义了以下内容:
  • 在项目根目录(通常有一个.git目录)中,我执行以下操作:
touch/path/to/project/.vimrc
  • 在.vimrc文件中,我在path变量前面加了前缀(注意^path)。使用:set path^=而不是:set path+=将新目录前置到路径的开头,而不是将其追加到结尾。这使得find命令搜索文件的速度更快

现在:find命令应该只显示相对于项目根目录的文件和目录。

很有趣,谢谢eckes-看起来很有希望。我明天会试试这个
let s:project_root = finddir('.git/..', expand('%:p:h').';')
let s:local_vimrc = join([s:project_root, '.vimrc'], '/')

if filereadable(s:local_vimrc)
    exec "source " . s:local_vimrc
endif
let s:project_root = finddir('.git/..', expand('%:p:h').';')
exec 'setlocal path^='.s:project_root

setlocal wildmode=longest,list,full
setlocal wildmenu
setlocal tags=/path/to/project/root/tags