【问题标题】:what if after-directory not in HOME如果后目录不在 HOME 中怎么办
【发布时间】:2015-03-06 03:59:13
【问题描述】:

我想把我的 gvim 'after' 目录放在我最喜欢的位置,而不是 $HOME/vimfiles/after。但是添加到 rtp 只会导致这些脚本在加载正确 之前 ft-plugin 脚本加载之后。 那么简单的解决方案是什么?

BR,若尘

【问题讨论】:

  • 你是什么意思添加到rtp 只会导致这些脚本在 ftplugin 脚本之前加载? (你是怎么把目录添加到rtp的?)
  • 我的意思是设置 rtp+=ATER_DIR。如果我设置了 rtp+=UPPER_DIR_OF_AFTER,那么之后的脚本根本不会被加载。
  • 只要你追加,加载顺序(从左到右)应该没问题。请向我们展示目录的草图,如果您在那里遇到问题,请提供:scriptnames 输出。

标签: vim directory structure


【解决方案1】:

用户的after 目录只是另一个要在'runtimepath' 中搜索的根条目。查看默认值:

    PC, OS/2: "$HOME/vimfiles,
            $VIM/vimfiles,
            $VIMRUNTIME,
            $VIM/vimfiles/after,
            $HOME/vimfiles/after"

用另一个替换最后的$HOME/vimfiles/after(或只是添加)是安全的,例如$HOME/elsewhere/after。 (虽然我不明白这样做的动机;$HOME/vimfiles 下的所有内容都在您的用户控制之下;为什么将(人烟稀少的)结构放在其他地方,因为这不会影响关键的加载顺序。)

【讨论】:

  • 有几个原因: 1. 我在 cygwin 术语中使用 gvim gui 和 vim,所以我希望他们只共享一套脚本。 2.我想用git对这些脚本做版本控制,因为我不想到处备份。如果我将它们放在默认的 $HOME 目录中,并且有一天我必须重新安装 win7,我通常也会格式化系统盘。万一我忘了把脚本抄出来,那真是一场大灾难。
  • 请原谅,但这些理由对我来说没有任何意义,尤其是因为您只询问了 after 目录,而不是整个 Vim 用户配置。
  • 对不起,我误解了后目录的使用。我认为它们是在加载所有其他脚本之后加载的,这样我就可以覆盖一些文件类型的相关设置。现在我用其他方法来实现它。
  • 是的,after 目录中的脚本在最后运行,它通常用于覆盖特定于文件类型的东西。但是为此,您可以将它们保留在您的其他配置中,在$HOME/vimfiles/after 下。奇怪的是,您只想移动 after 目录,而不是 $HOME/vimfiles 的普通用户配置。
  • 哦,我没说清楚。实际上我把我的整个 vimfiles 目录放在一个地方,而不是 $HOME。如果 vimfiles 没有放在 $HOME 中,似乎 `after' 机制不会生效。
猜你喜欢
  • 2019-01-22
  • 2021-08-26
  • 2010-10-06
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多