2

我想使用一个表达式(函数),它接受两个参数——数据和字典——作为状态行。

这就是我正在尝试的:

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

如果我在函数调用中删除字典,它就会通过。即使我将它用作没有任何空格的单行,我也会遇到同样的错误。

4

1 回答 1

0

'statusline'要在表达式中使用字典,Funcref可以使用 a。

例如,sign_getplaced带有字典的参数:

let g:Sign_getplaced = function('sign_getplaced', ['', {'group':'*'}])

然后g:Sign_getplaced'statusline'表达式中使用。

于 2021-01-05T02:45:17.847 回答