Можно ли разделить .vimrc на несколько файлов?


11

Скажем, у меня есть несколько сотен пользовательских сопоставлений iabдля Java и еще несколько сотен сопоставлений для Haskell, тогда я бы хотел разделить их на разные файлы, чтобы сделать его более управляемым. То, что я ищу, это создать что-то вроде этого:

~/.
 ├── .vimrc
 └── .vim
     └── custom
         ├── java.vim
         └── haskell.vim

Где .vimrc может выглядеть примерно так

import java
import haskell

Можно ли что-то подобное сделать, или я просто слишком усложняю вещи? Я думаю, что я пытаюсь добиться того, что вы делаете в LaTeX с помощью \inputкоманды ...


2
Есть ли причина, по которой вы их не включили ~/.vim/after/ftplugin/$language.vim?
wchargin

1
Не правда ли? Что должно войти after/ftplugin?
Линд

2
Если вы напишите файл с именем, например, ~/.vim/after/ftplugin/java.vimон будет автоматически запускаться при каждом открытии javaфайла. Кажется, это то, что вы хотите.
wchargin

Ответы:


5

Вы ищете ftplugins. Это их цель.

И не забудьте определить ваши отображения, настройки, аббревиатуру, команды, ... как локальные. В противном случае они будут паразитировать на других буферах после загрузки.

Вот еще несколько полных ответов:


11

Да, команда vim, которую вы ищете, это :sourceили :runtimeвытащить их runtimepath.

Например, вы можете сделать это в вашем .vimrc:

runtime custom/java.vim
runtime custom/haskell.vim

Предполагается, что ~/.vimв вашем runtimepath(что по умолчанию).

Вы также можете оставить свои скрипты в ~/.vim/pluginкаталоге; см. запись-плагин в документации. Vim автоматически запускает все скрипты в каталоге плагинов.


Круто. Есть ли какое-либо соглашение об именах для того, что я здесь назвал custom, и это не совсем плагины, а скорее файлы, в которых с таким же успехом могли бы быть .vimrc?
Линд

1
@ Линд-Э Не то, чтобы я знал. Возможно, вы захотите использовать что-то, что, как вы уверены, не будет иметь смысла в будущей версии vim. Поскольку они стремятся поддерживать совместимость с именами файлов 8.3, я бы предложил имя каталога> 8 символов.
Дероберт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.