terminal.txt, there is description about
terminal-api, but it seems not to give a example to show how the message is send from terminal to vim function
Tapi_..., is there some examples for the usage?
:help terminal-api includes a thorough description of the API and also an example function:
function Tapi_Impression(bufnum, arglist) if len(a:arglist) == 2 echomsg "impression " . a:arglist echomsg "count " . a:arglist endif endfunc
Then inside a
:term you can call this function by sending a special sequence starting with
<Esc>]51;, then including a JSON encoded list (whose first element is the string
"call", the second is the name of the function to call and the third a list of arguments to pass), finally followed by a
<07>, which is the ASCII character with code 07, which is the "bell" control character.
In a shell (such as
bash), you can use
echo -e to have it interpret special sequences, and then
\e to issue an
<Esc> character, and
\a for a "bell" which has ASCII code
<07>. Putting it all together:
$ echo -ne '\e]51;["call", "Tapi_Impression", ["play", 14]]\a'
This will call the
Tapi_Impression function, which in turn will print the following message (also available in
impression play count 14