How to source all vim files in directory

前端 未结 4 590
遥遥无期
遥遥无期 2021-01-31 16:14

I have split my .vimrc into several files and placed them into ~/vimfiles/vimrc.d/.

Currently I source each file in that directory using exact name:

相关标签:
4条回答
  • 2021-01-31 16:49

    As mb14 has already said, if you put them in ~/.vim/plugin they will be sourced automatically. For information, however, if you want to source all of the files in your vimrc.d directory, you could do this (requires a relatively recent Vim):

    for f in split(glob('~/vimfiles/vimrc.d/*.vim'), '\n')
        exe 'source' f
    endfor
    

    You may also be interested in the autoload mechanism, described in :help 41.15: if you're defining a lot of functions, this can make start-up a bit quicker as the functions are only loaded the first time they're used.

    0 讨论(0)
  • 2021-01-31 16:52

    You can just put your files in the plugins directory (~/.vim/plugin). They will be automatically loaded.

    0 讨论(0)
  • 2021-01-31 16:56

    The example from DrAl did not work for me, this is how I achieved it:

    for fpath in split(globpath('~/.vimrc.d/', '*.vim'), '\n')
      exe 'source' fpath
    endfor
    
    0 讨论(0)
  • 2021-01-31 16:59

    mb14 gave you the best answer. You want something automatically executed? Then use the standard organization: here the plugin/ subdirectory.

    Otherwise, :runtime would have been your friend:

    :runtime! vimrc.d/*.vim
    
    • :source barks when its parameter doesn't exist while :runtime silently source nothing.
    • :source can source only one file while :runtime! can source any number of files.
    • :source takes an absolute pathname, or a pathname relative to the current directory while :runtime takes a pathname relative to the 'runtimepath' option, which shouldn't be a problem as long as you respect vim conventions.
    0 讨论(0)
提交回复
热议问题