2014-02-20 2 views
0

Если я открываю файл переменного тока и мой буфер использует «c.vim» ftplugin, а затем открыть/редактировать/источник моего .vimrc, я потеряю функциональность «c.vim " ftplugin.Как правильно перезагрузить ftplugin после заквашивания .vimrc?

Какой будет лучший способ автоматической перезагрузки ftplugin?

Вот пример:

буфера состояние для с файлом перед моим поиском .vimrc:

// This line has an existing comment. 
// I used 'o' while on the above line to continue that comment. 
// Awesome, after pressing return I am still commenting. 

буфера состояние для с файлом после того, как мой поиске .vimrc:

// This line has an existing comment. 
I used 'o' while on the above line to try and continue that comment. 
After pressing return it is obvious the ftplugin for this filetype is not active. 

Это мой .vimrc в случае, если это каким-то образом вызывает вопрос:

set nocompatible 
set backspace=indent,eol,start 
filetype plugin indent on 
syntax on 
set hls 
nnoremap <leader>ev :split $MYVIMRC<cr> 
nnoremap <leader>sv :source $MYVIMRC<cr> 
+1

Вы не используете ftplugins вручную или программно: они получены Vim, когда он обнаруживает связанный с ним тип файла. Кроме того, вы не показывали, что находится в этом ftplugin, или даже говорите, какой тип файла он должен покрыть. Пожалуйста, замените оправдания в своем вопросе дополнительной информацией. – romainl

+0

romainl Спасибо за ваш ответ, какие оправдания я должен заменить? Я могу добавить filetype - это c-код. используя стандартный тип файла c, который включен в vim ... Последнее изменение 2007 Sep 25. Помогло ли это? – Willis

+0

«Я искренне извиняюсь заранее» и друзей. – romainl

ответ

1

Либо я неправильно прочитал ваш вопрос, когда я дал свой первый ответ, или ваше редактирование резко изменило вопрос.

Короткий ответ: удалить строку

:set nocompatible 

из файла vimrc.

Вот несколько соответствующих строк из :help 'compatible':

This is a special kind of option, because when it's set or reset, 
other options are also changed as a side effect. ... 
When a |vimrc| or |gvimrc| file is found while Vim is starting up, 
this option is switched off, and all options that have not been 
modified will be set to the Vim defaults. ... 

Это означает, что :set nocompatible в начале файла vimrc является излишним. Кроме того, бит о «всех параметрах, которые не были установлены» применяется только к автоматическому эффекту поиска файла vimrc, а не к тому, когда вы устанавливаете или перезапускаете эту опцию.

Как я уже говорил в своем предыдущем ответе, опция 'formatoptions' - это то, что вас беспокоит; это один из многих вариантов, затронутых опцией 'compatible'.

+0

после удаления этого из моего vimrc он работает, и теперь мой источник .vimrc не вызывает никаких побочных эффектов. Я изменил вопрос, чтобы сделать его более читаемым по предложению Ромайнла. Я также изменил вопрос, чтобы удалить мой комментарий о потенциальном исправлении – Willis

+0

Как сказал Джимми Баффет, «это может быть моя ошибка». То есть, я, возможно, неправильно понял вопрос в первый раз. Я думал, вам понравилось то, что было в вашем vimrc, и именно поэтому вы использовали его поверх ftplugin. – benjifisher

0

Вы должны сделать две вещи:

  1. найти вариант, который имеет значение.
  2. Заменить ftplugin.

Недавно я давал советы по # 1 на суперпользователя: https://superuser.com/questions/719329/automatic-indentation-with-macvim/719411#719411 В вашем случае вариант вы хотите изменить это 'formatoptions' (короткая форма 'fo').

За № 2, см. :help ftplugin-overrule. Я предлагаю использовать третий вариант, описанный там.

+0

Я посмотрел на это переполнение ftplugin до и после того, как посмотрел на него снова, кажется, что это поможет мне решить проблему, а не обращать на нее внимание. Я не должен был бы генерировать ftplugin с строками, которые я прокомментировал. Но, глядя на файл справки в этом, я подошел ближе к решению, теперь я редактирую свой вопрос. – Willis

Смежные вопросы