После прочтения help textwithи help fo-tableя ожидал, что когда я установил
set textwidth=20 " for demonstration
set formatoptions=tcq
тогда вставка текста всегда приводит к переносу строки, но это не так. Обтекание происходит только в (или перед) моем курсоре. И если я вставлю, обертывание не произойдет вообще.
Пример (Vim 7.4):
12345678901234567890
This is a long line
Строка будет автоматически перенесена, если я нажму Aи начну печатать.
Но если я нажму 02wiи введу «все еще», это не переносится:
12345678901234567890
This is still a long line
Я должен набрать еще 7 символов, прежде чем он будет перенесен, а затем проблема продолжится в следующей строке:
12345678901234567890
This is still more <-- it wraps here
typing and again a long line
Вставка также не вызывает переноса:
12345678901234567890
This is a long line This text is pasted and not wrapped
Я думаю, что я хочу, set fo+=aно это применимо на уровне абзаца, тогда как я не хочу, чтобы автоматическое форматирование одной строки распространялось на другие строки.
Или я пропускаю вариант?
Чтобы быть понятным, после запуска vim -u NONE, это то, что я печатаю (меньше комментариев):
:set textwidth=20<CR>
:set formatoptions=tcq<CR>
iThis is a long line<ESC>
02wistill <ESC> " no wrap happens, but I'd like it to
u
:let @r = "This text is pasted and not wrapped"<CR>
$"rp " no wrap happens, but I'd like it to
pasteустановить, случайно? Попробуй:set paste?
pasteне установлено. Когда pasteустановлено, обертывание не происходит вообще.
vim -u NONEдля предотвращения загрузки файла vimrc. Решает ли это проблему для вас? Какую версию Vim вы используете?