2

データと辞書の 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'式で辞書を使用するには、 a を使用Funcrefできます。

たとえばsign_getplaced、辞書を使用した引数:

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

次にg:Sign_getplaced、式で使用し'statusline'ます。

于 2021-01-05T02:45:17.847 に答える