Vim-ftplugin设置更改不更新现有文件

Vim-ftplugin设置更改不更新现有文件,vim,ftplugin,Vim,Ftplugin,对于我已经在Vim中打开过的文件,似乎存在一些奇怪的缓存行为。我打开了一个文件foo.txt,然后我在~/.vim/after/ftplugin/text.vim中更改了一些设置,但这些新设置不会出现在foo.txt中。我可以退出vim并重新打开foo.txt,或者使用:e重新加载,甚至可以使用:so~/.vim/after/ftplugin/text.vim,但这些似乎都不会影响foo.txt的设置。如果Imv foo.txt bar.txt,则bar.txt的设置不会出现问题 编辑 似乎我可

对于我已经在Vim中打开过的文件,似乎存在一些奇怪的缓存行为。我打开了一个文件
foo.txt
,然后我在
~/.vim/after/ftplugin/text.vim
中更改了一些设置,但这些新设置不会出现在
foo.txt
中。我可以退出vim并重新打开
foo.txt
,或者使用
:e
重新加载,甚至可以使用
:so~/.vim/after/ftplugin/text.vim
,但这些似乎都不会影响
foo.txt
的设置。如果I
mv foo.txt bar.txt
,则
bar.txt
的设置不会出现问题

编辑

似乎我可以按以下顺序强制重新加载
foo.txt
的设置:

  • :so~/.vimrc
  • :so~/.vim/after/ftplugin/text.vim
  • 问题:

  • 为什么需要这样做/为什么其他设置没有被选中
  • 为什么采购
    ~/.vimrc
    不够?它应用了在
    ~/.vimrc
    中直接指定的设置,但是ftplugins不应该在
    上的
    文件类型插件缩进行加载吗?为什么事后需要寻源
    text.vim
  • Vim由几百个文件组成,我不知道为什么希望Vim持续监视它们。没有。这些文件是在一些定义明确(并有文档记录)的点加载的,这就是它的全部内容

    特别是,没有安全的方法来重新加载配置。您可以执行类似于
    :so~/.vimrc
    的操作,但除非您专门编写
    vimrc
    来考虑这一点,否则将存在一些缺点(例如
    autocmd
    s堆积)。如果你想安全,你必须退出Vim并重新启动它。这就是Vim的工作原理

    现在,对于
    ftplugin
    s,您可能会得到如下结果:

    :setf text
    
    (使用实际的文件类型,而不是
    文本
    )。这适用于简单的
    set fubar
    选项。它之所以有效,是因为发动机罩下的setf实际上是一个精心编写的
    autocmd
    。对于更复杂的构造(例如
    autocmd
    s或文件范围的变量),它仍然会中断,原因与
    :so ~/.vimrc
    有缺点。

    更精确一些:

    • .vimrc
      加载一次->用于定义全局内容
    • .gvimrc
      相同,仅在
      .vimrc
      之后加载gvim
    • 插件也加载一次,在vimrc文件->之后加载全局内容
    • 自动加载的插件在调用它们定义的函数时按需加载一次
    • ftplugins每个缓冲区加载一次(可能多次!因为可能有多个缓冲区需要对其进行源化)->定义仅适用于触发加载的当前缓冲区
    • 还有langmap脚本、语法脚本、缩进脚本,甚至还有旧的
      宏/
      脚本(显式/手动加载)
    • 一些插件提供本地vimrcs(基本上与ftplugins相同,但加载取决于缓冲区的当前目录,而不是其文件类型)

    如您所见,所有内容都只加载一次。如果要多次加载它们,则必须手动显式加载。这就是为什么我们中的一些人有一个
    :Reload
    命令来简化任何类型的脚本的重新加载-我的脚本隐藏在我的脚本集合中:lh misc->plugin/vim maintain.vim

    vim文档的一个主要问题(如果不是主要问题的话)是缺乏关于如何组合的高级视图。出于这个原因,每个人都必须通过自下而上的解析来发现这些细节,这就是为什么绝大多数人在尝试之前就放弃了。“我想知道我们能做些什么。”SatoKatsura说。我们以前有vim提示,然后迁移到vim.wikia.com。已经投入了大量的精力来整理各种提示,编辑它们。。。约翰和弗里茨,以及其他人,在这个话题上做了非常出色的工作。不幸的是,维基并不受欢迎。一部分是因为我们没有登录时的侵入性广告,另一部分是因为我们从来没有时间完成和完成tips数据库。此外,它还受到没有外部链接的SO/SE政策的影响。因此,我们几乎不得不重新开始,这无助于知识的资本化。现在,我们有了关于vim的文档。。。