How do you get vim to display wrapped lines without inserting newlines?

痞子三分冷 提交于 2019-12-18 04:37:19

问题


I'm getting back in touch with my inner (g)vim due to an unscheduled MacBook mother(board) of a meltdown (my emergency backup Linux box won't run TextMate). All told I'm happy with vim's efficiency and power, but I'm mortified at how hard it is to get the kind of word wrap that even stupid HTML textareas achieve with no apparent effort.

Consider the text

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

By default, with an 80-character width vim displays this as

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

This wrapping doesn't care about whitespace, so sometimes it just slices words into pieces (nullam in this case). Of course, you can turn on word wrap, and get this:

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

The problem is that vim inserts a newline at the linebreak, which I most emphatically do not want. In other words, I want the text to display exactly as vim displays it with word wrap turned on, but without inserting a newline. (This way it can be pasted into HTML textareas and email programs, among other places.)

Web searches have yielded nothing of use, despite diligent effort; I hope StackOverflow can succeed where my Google-fu has failed.


回答1:


To turn on word wrapping:

:set wrap
:set linebreak

To copy & paste the original text and not any padding works for gvim. For vim in an xterm though, it copies the space padding at EOL (though not the newline). I thought this should work but it doesn't:

:set mouse=a



回答2:


I found this very helpful - works like a charm.

Basically I just added these lines in my 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:


If vim is adding in newline characters (not just wrapping the text) then you probably have textwidth turned on ...

:set textwidth=0


来源:https://stackoverflow.com/questions/467739/how-do-you-get-vim-to-display-wrapped-lines-without-inserting-newlines

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!