Команда, которую вы предложили, не будет работать: она не будет запускать команду Vim при каждом открытии ~/.vim/skeleton.R
Грубый способ достижения того, чего вы хотите, это использовать:
:au BufNewFile *.R r ~/.vim/skeleton.R
Это будет читать (:r
) ваш файл каждый раз, когда создается новый *.R
файл. Вы хотите избежать использования BufRead
в autocmd, иначе он будет считывать файл скелета в ваш рабочий файл каждый раз, когда вы открываете файл!
Есть много плагинов, которые добавляют гораздо больше контроля этому процессу. Будучи автором и, следовательно, полностью предвзятым, я бы порекомендовал этот , но есть много других перечисленных здесь .
Бесстыдная вилка:
Они все работают относительно схожим образом, но для объяснения моего сценария:
Вы устанавливаете плагин, как описано на связанной странице , а затем создаете несколько шаблонов в ~/.vim/templates
. Эти шаблоны должны иметь то же расширение, что и «целевой» файл, поэтому, если это шаблон для файлов .R
, назовите его как skeleton.R
. В вашем .vimrc
добавьте что-то вроде этого:
let g:file_template_default = {}
let g:file_template_default['R'] = 'skeleton'
Затем создайте новый файл .R
(с именем файла, поэтому сохраните его, если он новый) и введите:
:LoadFileTemplate
Вы также можете пропустить редактирование .vimrc
и просто сделать:
:LoadFileTemplate skeleton
Подробнее см. на сайте .