有一个vim函数Send_to_Screen(text)
可以将一些文本发送到控制台屏幕会话。我有一个映射
vmap <F4> "ry :call Send_to_Screen(@r)<CR>
使用当前选择调用该函数。现在我想要定义另一个映射,它使用整个缓冲区的内容调用该函数,但我不能让它工作。我试过了
nmap <F5> maggVG"ry`a :call Send_to_Screen(@r)<CR>
但它不起作用。那么如何使用当前缓冲区的文本定义映射?
答案 0 :(得分:13)
怎么样:
nmap <F5> :call Send_to_Screen(join(getline(1,'$'), "\n"))<CR>
函数getline()
返回所选范围内的行列表(1是第一行,“$”是最后一行),函数join()
连同列表的内容和提供了分隔符(在这种情况下为“\ n”)。参见:
:help getline()
:help join()