вопрос по форматированию текста в Vim - PullRequest
4 голосов
/ 10 июня 2011

Я использую Vim для написания текста, который не является кодом, просто пишу в свободной форме.Для этого мне бы хотелось, чтобы formatoptions включал флаг w и иногда флаг a.

Предполагается, что флаг w делает его таким, что конец абзаца происходит, когда строка заканчивается непустым символом, а не первой пустой строкой (что является значением по умолчанию Vim).Вот фрагмент справочной документации:

w   Trailing white space indicates a paragraph continues in the next line.
    A line that ends in a non-white character ends a paragraph.

Флаг делает автоматическое переформатирование при вводе.Например, в документе с текстом ниже и w и флажками строки переформатируются, поскольку я печатаю только до «последней строки в абзаце», а не ниже.

This it the first line of the paragraph. <cr>
The text in it reformats properly as I type <cr>
up to the last line of the paragraph, which is <cr>
right after this line, that is, just below here: <cr>
This is the last line of paragraph.<cr>
This is the first line of second paragraph. <cr>
Even though there is no blank line between <cr>
it and first paragraph, any reformatting of <cr>
the first paragraph ends at the last line <cr>
of first paragraph.<cr>
<cr>
This the the first line after second paragraph<cr>

Теперь к моему вопросу: С флагами a и w переформатирование работает правильно, как я печатаю в первом абзаце, т. Е. Второй абзац остается нетронутым.Но иногда я хочу выбрать текущий абзац, используя vap.Мне кажется, что с установленным флагом w это должно выбрать только первый абзац.Но на самом деле, ввод vap в первом абзаце также приводит к выделению второго абзаца, вплоть до пустой строки с <cr>, по-видимому, игнорируя флаг w formatoptions.

Это ожидаемое поведение?Я что-то пропустил?Почему vap не выбирает только тот абзац, в котором я нахожусь, который заканчивается на первой строке без пробела?

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Если вы прочитали справку на :h paragraph, это не упоминает настройку 'fo'. Так что Похоже, настройки fo на самом деле не меняются, что определяет абзац. Это может быть ошибка или неясная документация, поэтому вы можете обсудить это в списке рассылки vim-dev.

0 голосов
/ 10 июня 2011

С :help text-objects или :h paragraph вы можете видеть, что абзац для vim начинается после каждой пустой строки, а также с каждого из набора макросов абзаца, заданных парами символов в опции 'paras'. Пустые строки, содержащие только пробелы, также являются границами абзаца.

Флаг w в форматировании имеет значение только при автоформатировании абзаца при вводе текста: он разбивает строки и оставляет пробелы в конце строк, которые не заканчивают абзац. Я полагаю, текст справки немного сбивает с толку.

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