Nvim 与散文:如何设置正确的“自动格式”换行

问题描述 投票:0回答:1

我正在使用 Neovim 配置来撰写散文。我希望它

autoformat
当前段落,连续换行。假设我使用
:set formatoptions=a
来完成此操作。这会导致以下恼人的行为,其中 █ 代表光标:

here is some text
█

现在,如果我进入插入模式并输入

and here is more
,它会将其放在上一行:

here is some text and here is more

相反,我希望它像这样留下换行符:

here is some text
and here is more

看着

:help fo-table
,我看到一个有趣的选项:

w       Trailing white space indicates a paragraph continues in the next line.                                                 
        A line that ends in a non-white character ends a paragraph.

如果我使用

:set fo+=w
启用它,现在上面的示例可以按预期工作。但是,现在如果我尝试使用
gq
手动格式化长行,它将在每行末尾添加(实际)尾随空格:

Here is a very very very very very very very very very very very very very very long line.

成为

Here is a very very very very very very very very very very very very very_
very long line.

其中

_
代表空格。

我希望它在手动格式化时不添加空格(当不使用

w
选项时),但我也希望它在插入第二行时保持换行符完整(当w
是用过的)。我怎样才能同时实现这两个目标?

vim word-wrap neovim autoformat
1个回答
0
投票
也许你可以继续使用 gq,并使用以下 autocmd 来删除尾随空格 au BufWritePre * :let pos=winsaveview()|沉默的! %s/([^[:空格:]])\s+$/ /e |调用 histdel('搜索', -1) |调用 winrestview(pos)

© www.soinside.com 2019 - 2024. All rights reserved.