Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自终端仿真器的Vimscript函数调用_Vim_Vim Plugin_Neovim_Terminal Emulator - Fatal编程技术网

来自终端仿真器的Vimscript函数调用

来自终端仿真器的Vimscript函数调用,vim,vim-plugin,neovim,terminal-emulator,Vim,Vim Plugin,Neovim,Terminal Emulator,我在neovim中安装了语言服务器客户端()作为插件。该客户机与一个语言服务器交互多种语言,如python或R,并提供自动完成、变量重命名等功能 我想使用的一个特性是代码执行,在这种情况下,您可以选择代码的一部分,然后将其发送到LSP服务器进行评估,并获得相应的响应。如果我创建一个终端仿真器,我也可以做类似的事情。”term://python复制并粘贴代码,但这样有两个“服务器”在运行,一个通过LSP服务器,另一个从终端运行,与此类似 我希望在运行python、R或MATLAb的一个实例的情况下

我在neovim中安装了语言服务器客户端()作为插件。该客户机与一个语言服务器交互多种语言,如python或R,并提供自动完成、变量重命名等功能

我想使用的一个特性是代码执行,在这种情况下,您可以选择代码的一部分,然后将其发送到LSP服务器进行评估,并获得相应的响应。如果我创建一个终端仿真器,我也可以做类似的事情。”term://python复制并粘贴代码,但这样有两个“服务器”在运行,一个通过LSP服务器,另一个从终端运行,与此类似

我希望在运行python、R或MATLAb的一个实例的情况下能够同时完成这两项工作。如果有办法通过vim lsc插件将终端仿真器中键入的“命令”发送到LSP服务器,那么只需运行一个实例就可以完成该任务

我还考虑制作一个vimscript,它创建一个模拟终端的缓冲区(比如Conque或do),然后通过该脚本捕获并传递命令。尽管如此,我还是无法弄清楚这些插件是如何使提示符和命令输出不可修改的,而使用户当前键入的命令保持可修改的

我之所以选择LSP路径,而不选择像这样的插件,是因为它们不提供自动完成和重构等各种功能

欢迎提出任何建议。谢谢


编辑:我想澄清一下,到目前为止,我认为vim lsc没有能力发送executeCommand请求。我编写了一个小的vimscript(sepate代码),它能够做到这一点。我计划及时提交pull请求,并在vim lsc中提供该功能,因此在描述中包含了vim lsc。抱歉造成混淆。

如果它是LSP协议的一部分,并且您确实可以将代码发送到LSP服务器执行,那么vim lsc并没有实现它;我在帮助文件中找不到它。你能做的最好的事情就是在问题页面上搜索和/或自己发布关于该功能的文章