我经常看到“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
上追加内容。但是,我不明白前两行是做什么的。任何帮助都是非常感谢的。
2条答案
按热度按时间y4ekin9u1#
Vim的online帮助是您的朋友:
:h .=
:h expr-.
个:h expr1
(好吧--这有点难找):第一个问题
neskvpey2#
一次一个:
假设i=9且s=“blah”,则s现在将为“blah%9T”
这是C中常见的三元运算符。如果t==9,则s现在是“bleah%9T%1*"。如果t不是 * 9,则s现在是“bleah%9T%2*”。