我正在创建一个新函数来证明文本的合理性。我知道有一些插件,但它们并没有做我想做的事情,所以我决定自己创建一个函数。
前:
text_text_text_text_____
后:
text__text___text___text
我首先要做的是找到单词的数量和非空格字符的数量(对于我文本中的每一行):
let @e = '' | redir @e | silent exe i.'s/'.cols.'\(\S\+\)/&/gne' | redir END
if matchstr(@e, 'match') != '' | let nrwords = matchstr(@e, '\d\+\ze') | else | continue | endif
let @e = '' | redir @e | silent exe i.'s/'.cols.'\S/&/gne' | redir END
if matchstr(@e, 'match') != '' | let nonspaces = matchstr(@e, '\d\+\ze') | else | let nonspaces = 0 | endif
然后找到空格:
let spaces = textwidth_I_want - nonspaces
我必须划分单词之间的空格:
let SpacesBetweenWords = spaces/(str2float(nrwords)-1)
但是通常它是一个浮点数。
体育spaces = 34
nr.words-1 = 10
SpacesBetweenWords = 3.4
我想要做的是划分单词之间的空格,如下所示:单词之间的
空格:
4 3 3 4 3 3 4 3 3 4
并将它们放在一个列表'SpaceList'中
然后将它们插入单词之间
for m in range(1,len(SpaceList))
exe i 's/^'.cols.'\(\S\+\zs\s\+\ze\S\+\)\{'.m.'}/'.repeat(' ', SpaceList[m-1]).'/'
endfor
(cols = 我的块选择或整行)
在我的示例中创建一个包含所有整数 pe 的列表很容易
3 3 3 3 3 3 3 3 3 3
(空格 = 30)
,但单词之间仍然有 4 个空格。
我的问题是“如何在单词数之间划分这些空格”?