如何在Vim中智能地包装线,而不必使用';gqG';?
我是一名记者和程序员新手,希望在日常写作中更多地使用Vim。但我的问题是Vim似乎并没有始终如一地包装好线路。我的意思是,即使在我写作时,我的行按预期换行为80,如果我返回并编辑一行(比如,添加或删除文本),Vim也不会保持换行。看起来我可以在以后使用如何在Vim中智能地包装线,而不必使用';gqG';?,vim,Vim,我是一名记者和程序员新手,希望在日常写作中更多地使用Vim。但我的问题是Vim似乎并没有始终如一地包装好线路。我的意思是,即使在我写作时,我的行按预期换行为80,如果我返回并编辑一行(比如,添加或删除文本),Vim也不会保持换行。看起来我可以在以后使用gqG手动修复此问题;但要一直这样做有点烦人,有时会导致奇怪的断线 下面是我在Vim的.vimrc文件中用于字处理的内容 " Enable word processing func! WordProcessorMode() setlocal
gqG
手动修复此问题;但要一直这样做有点烦人,有时会导致奇怪的断线
下面是我在Vim的.vimrc
文件中用于字处理的内容
" Enable word processing
func! WordProcessorMode()
setlocal textwidth=80
setlocal smartindent
setlocal noexpandtab
setlocal wrap
endfu
com! WP call WordProcessorMode()
打了WP
,我的情况如下:
两个单独的段落,用干净的包装输入:
但当我尝试将它们结合起来时,会发生以下情况:
如上所述,如果我输入gqG
,它倾向于将其清理干净,并根据需要在第80列换行。但取决于我编辑其他行的方式,它们可能会在奇数处被打断(即早在80之前)
有没有一种方法可以使行以设置的textwidth
智能地、一致地包装?我一直在寻找这个问题的答案,但没有找到答案。设置linebreak
和nolist
似乎没有任何效果<代码>格式选项设置为tcq
谢谢 这称为自动格式化,并通过'formatoptions'
中的a
标志启用。发件人:
段落的自动格式化。每次插入或删除文本时
删除此段落将重新格式化。请参见|自动格式化|。
当“c”标志出现时,这仅在已识别的情况下发生
评论
这里的关键是正确地告诉Vim段落的组成部分。有关详细信息,请参阅。否则,你很快就会得到一大块文本,没有任何中断!这可以很好地处理纯文本,但我个人觉得它很烦人。编辑一行后,在视觉模式下使用
gq
?i、 e.选择使用vip
编辑了一行的段落,然后键入gq
,重新格式化编辑了一行的段落。a格式选项可能会有所帮助。所以,试试:设置formatoptions+=a
,然后开始在插入模式下键入文本。这似乎已经成功了!非常感谢@Sergiotextwidth
设置为非零值,通过插入行尾字符硬换行。作为替代,考虑软件调用。执行:设置textwidth=0
以禁用硬包装,执行:设置包装
。这样,当长线到达窗口或终端边缘时,它们将缠绕。您可能希望将终端或窗口的大小调整为80个字符宽。