我想使用一个表达式(function),它将两个参数 - 数据和字典 - 作为状态行。
这就是我正在尝试的:
let &stl="%{Brick(statusbricks#ReportLinecount('raw'), {
\ 'brick_color': 'LineNr',
\ 'delimiter_position': 'right',
\ 'delimiter_right': '❯'
\ })}"
为什么会导致以下错误消息:
E722: Missing comma in Dictionary:
Press ENTER or type command to continue
E116: Invalid arguments for function Brick(statusbricks#ReportLinecount('raw'), {'brick_color': 'LineNr', 'delimiter_position': 'right', 'delimiter_right': '❯'
Press ENTER or type command to continue
E15: Invalid expression:
Brick(statusbricks#ReportLinecount('raw'), {'brick_color': 'LineNr', 'delimiter_position': 'right', 'delimiter_right': '❯'
Press ENTER or type command to continue
如果我删除了函数调用中的字典,它就会通过。 即使我将它用作没有任何空格的单行,我也会遇到同样的错误。
答案 0 :(得分:0)
要在 'statusline'
表达式中使用字典,可以使用 Funcref
。
例如,带有字典的参数 sign_getplaced
:
let g:Sign_getplaced = function('sign_getplaced', ['', {'group':'*'}])
然后在 g:Sign_getplaced
表达式中使用 'statusline'
。