我是一名记者和新手程序员,并希望将Vim更多地用于我的日常写作。但我的问题是,Vim似乎并没有保持线条包裹。我的意思是,即使我在写作时我的行包装在80,如果我回去编辑一行(比如通过添加或删除文本),Vim也不会保持行包裹。看起来我可以使用gqG
后手动修复此问题;但这有点令人烦恼,有时会导致奇怪的断线。
以下是我在.vimrc
文件中用于Vim中文字处理的内容。
" Enable word processing
func! WordProcessorMode()
setlocal textwidth=80
setlocal smartindent
setlocal noexpandtab
setlocal wrap
endfu
com! WP call WordProcessorMode()
致电WP
后,这是我的情况:
两个单独的段落,用干净的包装输入:
Image: Vim window with two separate paragraphs
但是当我尝试将它们组合起来时,就会发生这种情况:
Image: Paras combined, but text runs long
如上所述,如果我输入gqG
,往往会清理它并根据需要回到第80列。但是根据我如何编辑其他行,它们可能会在奇数位置被破坏(即80之前)。
有没有办法在一组textwidth
中智能且一致地包裹线条?我已经找到了答案,但找不到答案。设置linebreak
和nolist
似乎没有任何效果。 formatoptions
设置为tcq
。
谢谢!
答案 0 :(得分:1)
这称为自动格式化,并通过a
中的'formatoptions'
标志启用。来自:help fo-table
:
a 自动设置段落格式。每次插入文字或 删除的段落将重新格式化。请参见|自动格式化|。 当出现“ c”标志时,只会发生在已识别的情况下 评论。
关键是要正确地告诉Vim什么是 paragraph 。有关详情,请参见:help auto-format
。否则,您很快就会得到一大块文本,而且没有任何中断!这可以与纯文本一起很好地工作,但是我个人觉得很烦人。
答案 1 :(得分:0)
编辑一行后在可视模式下使用 gq
吗?即选择您使用 vip
编辑过一行的段落,然后键入 gq
将重新格式化已编辑过一行的段落。