如何让vim显示包裹的行而不插入换行符?

时间:2009-01-22 01:11:34

标签: vim word-wrap

我正在重新接触我的内部(g)vim,因为计划外的MacBook母亲(董事会)崩溃了(我的紧急备份Linux盒子不会运行TextMate)。总而言之,我对vim的效率和力量感到满意,但我很难理解即使是愚蠢的HTML textareas也没有明显的努力就能获得那种自动翻译的难度。

考虑文本

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.

这种包装不关心空白,所以有时它只是将单词切成碎片(在这种情况下为nullam)。当然,你可以打开自动换行,然后得到这个:

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

问题是vim在换行符处插入了一个换行符,我最重要的是想要的。换句话说,我希望文本显示为vim显示它,并打开自动换行,但不插入换行符。 (通过这种方式,它可以粘贴到HTML textareas和电子邮件程序中,以及其他地方。)

尽管勤奋努力,网络搜索仍然没有任何用处;我希望StackOverflow可以在我的Google-fu失败的地方取得成功。

3 个答案:

答案 0 :(得分:19)

打开自动换行:

:set wrap
:set linebreak

复制&粘贴原始文本而不是gvim的任何填充工作。 但是对于xterm中的vim,它会复制EOL中的空间填充(尽管不是换行符)。 我认为这应该有效,但事实并非如此:

:set mouse=a

答案 1 :(得分:7)

我发现this非常有用 - 就像魅力一样。

基本上我只是在我的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

答案 2 :(得分:3)

如果vim正在添加换行符(不只是包装文本),那么您可能已启用textwidth ...

:set textwidth=0