Неправильные комментарии для php в vim - PullRequest
6 голосов
/ 14 января 2010

Мой vim используется для автоматического продолжения комментариев в php. Например:

/* |  <- cursor here

Затем, нажав Enter , вы получите:

/*
 * |  <- cursor here

и снова дает мне:

/*
 *
 * |  <- cursor here

и т.д ...

Насколько я понимаю, это контролируется опциями comments и formatoptions. Однако всякий раз, когда я открываю php-файл, comments устанавливается на:

s:<!--,m: ,e:-->

Я просмотрел всю папку ~ / .vim, а также папку $ VIMRUNTIME, и не могу выяснить, где / почему это изменилось, и почему опция comments установлена ​​неправильно.

Вот ссылка на мой .vimrc

http://pastebin.com/f1509ce65

Ответы [ 4 ]

3 голосов
/ 28 сентября 2014

Примечание.

Обратите внимание, что эта проблема также может возникать, если у вас есть filetype indent on и plugin on в отдельных строках .vimrc :

filetype indent on
filetype plugin on

Это приводит к обработке $VIMRUNTIME/indent/php.vim до $VIMRUNTIME/ftplugin/php.vim.

Файл indent/php.vim сбрасывается 'comments', а ftplugin/php.vim - нет.


Порядок беспорядка:

indent/php.vim получить и comments правильно установить:

setlocal comments=s1:/*,mb:*,ex:*/,://,:#

Тогда ftplugin/php.vim получит источник. Снова источники ftplugin/html.vim по:

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim

, что приводит к обработке ftplugin/html.vim и установке:

setlocal commentstring=<!--%s-->
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->

Позже в ftplugin/php.vim commentstring - это сброс , но не comments:

setlocal commentstring=/*%s*/

Fix:

filetype indent plugin on

" Or
filetype plugin indent on

" Or with correct order:
filetype plugin on
filetype indent on

PS.

В любом случае плагин должен быть обработан перед отступом.

Для проверки порядка включения / обработки взгляните на :scriptnames.

3 голосов
/ 26 января 2013

При настройках по умолчанию версии 7.3 (patchset 754) я наблюдаю ту же ошибку, что и в вашем исходном сообщении:

/**<ENTER>

Ожидаемый результат:

/**
 * <cursor>

Фактический результат:

/**
<cursor>

Решение состоит из двух шагов:

Модификация моего vimrc, учитывающая эти два шага:

au FileType php setlocal comments=s1:/*,mb:*,ex:*/,://,:#
au FileType php setlocal formatoptions+=cro

Ура!

1 голос
/ 18 января 2010

Нашел это. У меня был прикольный файл .vim / indent / php.vim, который как-то испортил его.

Удалил его и вернул функциональность, которую я искал. Спасибо, что!

0 голосов
/ 14 января 2010

Файл php.vim должен находиться в папке ftplugin в $VIMRUNTIME.

В версии 7.2 vim строка комментариев - это строка 74 в этом файле.

Был ли этот файл удален или перемещен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...