如何在目录中找到所有vim文件的来源

如何在目录中找到所有vim文件的来源,vim,Vim,我已将我的.vimrc拆分为几个文件,并将它们放入~/vimfiles/vimrc.d/中 目前,我使用确切的名称为该目录中的每个文件提供源代码: source ~/vimfiles/vimrc.d/file1.vim source ~/vimfiles/vimrc.d/file2.vim 等等 如何对该目录中的所有文件进行循环,这样我就只需要在我的.vimrc中进行循环: for file in ~/vimfiles/vimrc.d/*.vim source file enfor 您

我已将我的.vimrc拆分为几个文件,并将它们放入
~/vimfiles/vimrc.d/

目前,我使用确切的名称为该目录中的每个文件提供源代码:

source ~/vimfiles/vimrc.d/file1.vim
source ~/vimfiles/vimrc.d/file2.vim
等等

如何对该目录中的所有文件进行循环,这样我就只需要在我的.vimrc中进行循环:

for file in ~/vimfiles/vimrc.d/*.vim
   source file
enfor

您只需将文件放入plugins目录(~/.vim/plugin)。它们将被自动加载。

如前所述,如果您将它们放入
~/.vim/plugin
中,它们将被自动加载。但是,为了了解更多信息,如果您想获取vimrc.d目录中的所有文件的源代码,您可以这样做(需要相对较新的Vim):


您可能还对自动加载机制感兴趣,如中所述:如果您定义了许多函数,这可以使启动更快,因为这些函数仅在第一次使用时加载。

mb14为您提供了最佳答案。你想要自动执行的东西吗?然后使用标准组织:这里是plugin/子目录

否则,
:runtime
将是您的朋友:

:runtime! vimrc.d/*.vim
  • :source
    在其参数不存在时发出汪汪声,而
    :runtime
    无需发出任何声音
  • :source
    只能生成一个文件,而
    :runtime可以生成任意数量的文件
  • :source
    采用绝对路径名或相对于当前目录的路径名,而
    :runtime
    采用相对于
    'runtimepath'
    选项的路径名,只要遵守vim约定,这应该不会有问题

    • DrAl的例子对我不起作用,我就是这样做到的:

      for fpath in split(globpath('~/.vimrc.d/', '*.vim'), '\n')
        exe 'source' fpath
      endfor
      

      下面的剪报是我在
      ~/.vimrc
      文件中使用的,用于在
      ~/.vimrc.d/
      目录和子目录中生成脚本

      for f in glob('$HOME/.vimrc.d/**/*.vim', 0, 1)
        execute 'source' f
      endfor
      
      检查
      vim-c':help glob'
      以了解有关其他
      glob
      参数的详细信息

      TLDR

      glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])      *glob()*
      
      • {nosuf}
        设置为False允许应用“后缀”和“wildignore”选项

      • {list}
        设置为True会导致
        glob
        返回文件名中包含新行的列表


      注意:文件的扩展名应为
      .vim
      glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])      *glob()*