Как получить исходные файлы vim в каталоге - PullRequest
27 голосов
/ 21 декабря 2010

Я разделил свой .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

Ответы [ 4 ]

38 голосов
/ 21 декабря 2010

Как уже сказал mb14 , если вы введете их в ~/.vim/plugin, они будут получены автоматически.Однако, для информации, если вы хотите получить все файлы из вашего каталога vimrc.d, вы можете сделать это (требуется сравнительно недавно Vim):

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

Возможно, вас также заинтересует автозагрузкамеханизм, описанный в :help 41.15: если вы определяете много функций, это может сделать запуск немного быстрее, так как функции загружаются только при первом использовании.

22 голосов
/ 21 декабря 2010

Вы можете просто поместить свои файлы в каталог плагинов (~ / .vim / plugin). Они будут автоматически загружены.

13 голосов
/ 21 декабря 2010

mb14 дал вам лучший ответ. Вы хотите, чтобы что-то автоматически выполнялось? Затем используйте стандартную организацию: здесь плагин / подкаталог.

В противном случае, :runtime был бы вашим другом:

:runtime! vimrc.d/*.vim
  • :source лает, когда его параметр не существует, в то время как :runtime ничего не сообщает.
  • :source может использовать только один файл, а :runtime! может иметь любое количество файлов.
  • :source принимает абсолютный путь или путь относительно текущего каталога, тогда как :runtime принимает путь относительно параметра 'runtimepath', что не должно быть проблемой, если вы соблюдаете соглашения vim.
1 голос
/ 04 августа 2013

Пример от DrAl у меня не сработал, вот как я этого добился:

for fpath in split(globpath('~/.vimrc.d/', '*.vim'), '\n')
  exe 'source' fpath
endfor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...