Подтвердить что ты не робот

Как вы получаете vim для отображения завернутых строк без вставки новых строк?

Я вернусь к моему внутреннему (g) vim из-за незапланированной материнской (MacBook) материнских плат (мой резервный Linux-сервер не запускает TextMate). Все сказали, что я доволен эффективностью и мощью vim, но я очень сожалею о том, как трудно получить такой перенос слов, который даже глупые текстовые файлы HTML достигаются без видимых усилий.

Рассмотрим текст

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis nullam.

По умолчанию с 80-символьной шириной vim отображает это как

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis nu
llam.

Это обертывание не имеет никакого отношения к пробелу, поэтому иногда оно просто нарезает слова на куски (в этом случае nullum). Конечно, вы можете включить перенос слов и получить следующее:

Etiam ornare mollis tortor. Suspendisse sed neque. Nullam in elit. Cum sociis
nullam.

Проблема заключается в том, что vim вставляет новую строку в строку linebreak, которую я наиболее категорически не хочу. Другими словами, я хочу, чтобы текст отображался точно так же, как vim отображает его с включенным переносом слов, но без ввода новой строки. (Таким образом, он может быть вставлен в текстовые поля HTML и программы электронной почты, среди других мест.)

Веб-поиски не принесли ничего полезного, несмотря на прилежные усилия; Я надеюсь, что StackOverflow может преуспеть в случае неудачи моего Google-fu.

4b9b3361

Ответ 1

Чтобы включить перенос слов:

:set wrap
:set linebreak

Скопировать и вставить исходный текст, а не любые дополнения для gvim. Однако для vim в xterm он копирует пробел в EOL (хотя и не в новую строку). Я думал, что это должно работать, но это не так:

:set mouse=a

Ответ 2

Я нашел этот очень полезный - работает как шарм.

В основном я просто добавил эти строки в свой vimrc

" not to break on words
set formatoptions=1
set linebreak

" fixing up moving line by line in the paragraph
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk

Ответ 3

Если vim добавляет символы новой строки (а не просто обертывает текст), вы, вероятно, включаете текст...

:set textwidth=0