Строка формата с кодом и комментариями в vim - PullRequest
9 голосов
/ 05 октября 2011

Использование следующих настроек

set textwidth=40
set fo? -> formatoptions=croql)
set comments?    -> comments=sO:* -,mO:*  ,exO:*/,s1:/*,mb:*,ex:*/,://
set cindent
set cinoptions   ->cinoptions=

Если я вхожу в режим вставки и начинаю набирать следующую строку

    // abc abc abc abc abc abc abc abc

, строка разрывается на 40-й символ, как и ожидалось:

    // abc abc abc abc abc abc abc
    // abc

Кроме того, если строка длиной более 40 символов копируется и вставляется как

    // abc abc abc abc abc abc abc abc

и вводится команда gqq, это приводит к тому же результату, что и выше.

Но я заметил, что если я войду в режим вставки и введу строку ниже

    void funAbc(void) { // abc abc abc abc abc abc abc abc

, она не будет разбита.Если введена команда gqq, то это приведет к

    void funAbc(void) { // abc abc
        abc abc abc abc abc abc

Я ожидал, что как вставка строки длиной более 40 символов, так и выдача gqq сломают комментарии и вставят «//» в следующую строку- что-то похожее на это:

    void funAbc(void) { // abc abc
        // abc abc abc abc abc abc

Я пытался установить 'smartindent', но это не решило проблему.

Есть ли какая-либо опция / хитрость, которая может изменить поведениеэти комментарии начинаются после кода?

1 Ответ

3 голосов
/ 06 октября 2011

Не думаю, что это так.Форматирование комментариев с помощью «comments» и «formatoptions» распознает только когда строка комментария находится в начале строки.Комментарий, начинающийся с середины строки, распознается только подсветкой синтаксиса, а не форматером.По этой причине я не думаю, что это возможно в Vim.Возможно, вам удастся найти плагин, чтобы сделать это, но беглый поиск на сайте Vim не дал ничего полезного.

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