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

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

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

.../捆/
── vim-病原体
│ └── 自动加载
│ └── 病原体.vim
└── vim-smoothscroll
    └── 自动加载
        └── smooth_scroll.vim

我的 vimrc 文件包含以下内容:

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

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

我的 vimrc 文件是位于的符号链接~但指向我的 Dropbox 文件夹内的文件夹。

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

:设置运行时路径?
运行时路径 = 〜/ 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/共享/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 /菜单.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/rrhelper.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

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

答案1

你正在做疯狂的您的设置是否发生了变化。您是否发现默认方式太简单和太固定了?

  • Vim 的运行时文件(位于 下的所有内容/share/vim/vim74)应位于 中/usr/share/vim/vim74。您是否$HOME因为权限问题而安装了 Vim?

  • 所有个人内容(配色方案、插件、语法脚本……)都必须放入~/.vim。该目录可以是 Dropbox 中该目录的符号链接vimfiles,这样就无需进行任何 hack 操作。假设您使用的是 Linux,只需执行以下操作:

    ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim
    
  • pathogen.vim不是应该是source这样的。它位于autoload目录中,正是因为autoload机制防止source为了节省启动时间,必须这样做。

    此外,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

第2步:将您的移动到Dropbox 中的目录vimrc内。vimfiles

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

execute pathogen#infect()
execute pathogen#helptags()

步骤4:删除你的~/.vimrc

$ cd
$ unlink .vimrc

第 5 步:创建到您的 dropbox-synced 目录的符号链接:

$ ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim

相关内容