vim脚本中的“.=”是什么意思?

k0pti3hp  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(153)

我经常看到“let s.='something'”形式的变量赋值。下面是一个vim脚本中的一段代码,我一直在努力理解它:

let s .= '%' . i . 'T'
let s .= (i == t ? '%1*' : '%2*')
let s .= ' '
let s .= i . ':'
let s .= winnr . '/' . tabpagewinnr(i,'$')
let s .= ' %*'
let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')

该代码将选项卡编号(i)和视口编号(winnr,属于tabpagewinnr(i,'$'))添加到选项卡名称中,使其看起来类似于“1:2/4 Buffer name”。从外观上看,.=操作似乎是在s上追加内容。但是,我不明白前两行是做什么的。任何帮助都是非常感谢的。

y4ekin9u

y4ekin9u1#

Vim的online帮助是您的朋友:
:h .=

:let {var} .= {expr1}    Like ":let {var} = {var} . {expr1}".

:h expr-.

expr6 .   expr6 ..   String concatenation

:h expr1(好吧--这有点难找):
第一个问题

neskvpey

neskvpey2#

一次一个:

let s .= '%' . i . 'T'

假设i=9且s=“blah”,则s现在将为“blah%9T”

let s .= (i == t ? '%1*' : '%2*')

这是C中常见的三元运算符。如果t==9,则s现在是“bleah%9T%1*"。如果t不是 * 9,则s现在是“bleah%9T%2*”。

相关问题