有一个vim函数Send_to_Screen(text)可以将一些文本发送到控制台屏幕会话.我有一个映射
vmap <F4> "ry :call Send_to_Screen(@r)<CR>
Run Code Online (Sandbox Code Playgroud)
它使用当前选择调用该函数.现在我想要定义另一个映射,它使用整个缓冲区的内容调用该函数,但我不能让它工作.我试过了
nmap <F5> maggVG"ry`a :call Send_to_Screen(@r)<CR>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.那么如何使用当前缓冲区的文本定义映射?
DrA*_*rAl 13
怎么样:
nmap <F5> :call Send_to_Screen(join(getline(1,'$'), "\n"))<CR>
Run Code Online (Sandbox Code Playgroud)
该函数getline()返回所选范围内的行列表(1是第一行,"$"是最后一行),函数join()将列表的内容与提供的分隔符(在本例中为"\n")连接在一起.看到:
:help getline()
:help join()
Run Code Online (Sandbox Code Playgroud)