Чи можна .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?
lindhe

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?
lindhe

1
@ Lindh-E Не те, про що я знаю. Можливо, ви хочете використовувати щось, що ви впевнені, що майбутній версії vim не буде надано значення. Оскільки вони прагнуть залишатися сумісними з 8.3 іменами файлів, я б запропонував ім'я каталогу> 8 символів.
derobert
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.