与gq连字符后的vim linebreak

有没有办法配置
vim的gq函数,以便它允许在连字符后(在复合词中)断行?例如

twentieth-
century

顺便说一下,我不是在自己的笔记本电脑上,而是在运行Windows的实验室之一上,所以任何不使用par或fmt等程序的解决方案都会获得奖励积分:-)(虽然我也对解决方案感兴趣使用这些工具,如果不能使用vim这样做 – 至少我可以在我的笔记本电脑上做到这一点).

提前致谢.

最佳答案 对于ASCII连字符(0x2d),这是不可能的.如果您能够使用Unicode,则可以使用外观相同的Unicode变体(U 2010,cp.
http://en.wikipedia.org/wiki/Dash).这可以通过Ctrl-V(大多数Windows安装的Vim上的Ctrl-Q)插入,然后是u2010.或者为它定义一个有向图:

:digraph -- 8208 " hyphen, U+2010

:set formatoptions+=m

Vim会的

Also break at a multi-byte character above 255.

瞧!如果你需要将文本保存为ASCII,你甚至可以在gq周围编写映射/包装器:来回替换连字符.

点赞