为什么我的自动加载文件夹中的脚本没有在 Vim 中执行?

Hub*_*bro 1 vim gvim

我正在尝试使用 Pathogen 来管理我的 Vim 扩展。我的捆绑文件夹如下所示:

.../捆/
???vim-病原体
? ???自动加载
? ???病原体.vim
???vim-smoothscroll
    ???自动加载
        ???smooth_scroll.vim

我的 vimrc 文件包括:

让 s:root = fnamemodify(resolve(expand(":p")), ":h")

“引发病原体。
执行“源”。s:根。"/vimfiles/bundle/vim-pathogen/autoload/pathogen.vim"
执行病原体#infect()

我的 vimrc 文件是一个符号链接,位于~但指向我的 Dropbox 文件夹中的一个文件夹。

当我启动 Vim 时,这似乎有效。病原体已添加vim-smoothscroll到我的运行时路径:

:set 运行时路径?
运行时路径=~/Dropbox/Personal/config_sync/vim/vimfiles,~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-p
athogen,~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-smoothscroll,~/.vim,~/vim/share/vim/vimfiles,~/vim/
分享/vim/vim74,~/vim/share/vim/vimfiles/after,~/.vim/after

问题是脚本smooth_scroll.vim尚未加载:

  1: ~/.vimrc
  2: ~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-pathogen/autoload/pathogen.vim
  3: ~/vim/share/vim/vim74/syntax/syntax.vim
  4: ~/vim/share/vim/vim74/syntax/synload.vim
  5: ~/vim/share/vim/vim74/syntax/syncolor.vim
  6: ~/vim/share/vim/vim74/filetype.vim
  7: ~/vim/share/vim/vim74/menu.vim
  8: ~/vim/share/vim/vim74/autoload/paste.vim
  9: ~/Dropbox/Personal/config_sync/vim/vimfiles/colors/codeschool.vim
 10: ~/Dropbox/Personal/config_sync/vim/_vimrc_gui
 11: ~/Dropbox/Personal/config_sync/vim/_vimrc_keybinds
 12: ~/vim/share/vim/vim74/plugin/getscriptPlugin.vim
 13: ~/vim/share/vim/vim74/plugin/gzip.vim
 14: ~/vim/share/vim/vim74/plugin/matchparen.vim
 15: ~/vim/share/vim/vim74/plugin/netrwPlugin.vim
 16: ~/vim/share/vim/vim74/plugin/rhelper.vim
 17: ~/vim/share/vim/vim74/plugin/spellfile.vim
 18: ~/vim/share/vim/vim74/plugin/tarPlugin.vim
 19: ~/vim/share/vim/vim74/plugin/tohtml.vim
 20: ~/vim/share/vim/vim74/plugin/vimballPlugin.vim
 21: ~/vim/share/vim/vim74/plugin/zipPlugin.vim
 22: ~/vim/share/vim/vim74/syntax/ruby.vim
 23: ~/vim/share/vim/vim74/syntax/vim.vim
 24: ~/vim/share/vim/vim74/syntax/python.vim

这是为什么?手动加载脚本工作正常。

rom*_*inl 7

你正在用你的设置做疯狂的事情。您是否发现默认方式过于简单和可靠?

  • Vim 的运行时文件, 下的所有内容/share/vim/vim74,都应该在/usr/share/vim/vim74. $HOME由于权限问题,您是否在您的系统中安装了 Vim ?

  • 您所有的个人资料(配色方案、插件、语法脚本...)都必须放入~/.vim. 该目录可以是vimfilesDropbox 中该目录的符号链接,这将消除所有黑客攻击的“需要”。假设您使用的是 Linux,请执行以下操作:

    ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim
    
    Run Code Online (Sandbox Code Playgroud)
  • pathogen.vim不是应该被source剐这样。它在autoload目录中正是因为该autoload机制防止它被sourced 以节省启动时间。

    此外,pathogen.vim应该在~/.vim/autoload/.

    使用“正常”设置或符号链接使其对 Vim 看起来“正常”,就没有必要通过所有这些箍。

  • smooth_scroll.vim不应该在一个autoload目录中,它在一个plugin目录中,你为什么要改变它?这就是插件不起作用的原因。

  • 您知道 7.4 现在既查找~/.vimrc 查找~/.vim/vimrc吗?通过将所有内容保存在一个目录中,可以更轻松地管理您的配置。

第 1 步:vimfiles将 Dropbox中该目录的结构更改为如下所示:

/home/username/Dropbox/Personal/config_sync/vim/vimfiles/
  +-autoload/
  |   +-pathogen.vim
  +-bundle/
      +-vim-smoothscroll/
        +-plugin/
          +-smooth_scroll.vim
Run Code Online (Sandbox Code Playgroud)

第 2 步:将您的vimrc内部vimfiles目录移动到您的保管箱中。

第 3 步:删除该文件中所有与路径相关的无用内容。病原体相关部分应如下所示:

execute pathogen#infect()
execute pathogen#helptags()
Run Code Online (Sandbox Code Playgroud)

第 4 步:删除您的~/.vimrc

$ cd
$ unlink .vimrc
Run Code Online (Sandbox Code Playgroud)

第 5 步:创建一个指向您的 Dropbox 同步目录的符号链接:

$ ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim
Run Code Online (Sandbox Code Playgroud)