String 使用Vimscript获取字符串的长度

String 使用Vimscript获取字符串的长度,string,vim,String,Vim,这可能是一个非常基本的问题,但我似乎无法通过简单的谷歌搜索找到答案 我只想使用Vimscript查找字符串的长度,类似于Python中的len()函数。在Vimscript中有没有一种简单的方法来实现这一点,或者我只需要在字符串上循环?有len和strlen。对于字符串,它们是相同的 :echo len("Hello") :echo strlen("Hello") 请注意,仅适用于单字节字符,不适用于多字节字符。 Vim中有函数strlen()或len(),但它们只计算字符串的字节长度,而不是

这可能是一个非常基本的问题,但我似乎无法通过简单的谷歌搜索找到答案


我只想使用Vimscript查找字符串的长度,类似于Python中的len()函数。在Vimscript中有没有一种简单的方法来实现这一点,或者我只需要在字符串上循环?

len
strlen
。对于字符串,它们是相同的

:echo len("Hello")
:echo strlen("Hello")
请注意,仅适用于单字节字符,不适用于多字节字符。

Vim中有函数
strlen()
len()
,但它们只计算字符串的字节长度,而不是字符长度,就像Python中的
len()
函数那样。我们可以改为使用函数来获取 字符串长度。我认为这是VIM许多隐藏的怪癖之一。我们只是
需要习惯它。

根据您想要如何处理制表符、多字节和双宽度字符,您可能还需要
strcars()
strwidth()
strdisplaywidth()
。此外,结果可能取决于其他设置,例如
ts
或编码。此答案不完整,对多字节字符不起作用!请参阅此处以获得更完整的答案:您可能希望查看有关Vim的问题
len()
将显示字符串中的字节数。相反,我们应该使用
strchars()
来正确获取字符串长度。看起来很奇怪,但Vim就是这样工作的。