登录论坛

查看完整版本 : 如何在Vim中实现类似MATLAB的单元格模式


poster
2019-12-14, 20:13
在MATLAB中,我们可以将以下内容写入编辑器

%% -- a example cell -- plot(rand锛?锛?锛? %% -- another cell A=rand(2^10); t=linspace(-pi,pi,2^10); compass(fft(A*sin(t)) 我们只需按Ctrl + Enter即可运行鼠标指针所单击的单元格。

现在我知道在Vim中,我可以做

:''w !matlab运行可视选择的代码块。

但是,如何在Vim / gVim中实现类似MATLAB的单元格模式?

例如一些python代码

import os import subprocess import random ## 1st cell ps =["python", "-h"] out = subprocess.Popen(ps).communicate()[0] print out ## 2nd cell # import random -sould not be needed if we concatenate the import section and the cell print random.randint(1,100) 谁能提供一些想法?



回答:

不确定要问的是什么,但是如果要用鼠标双击块来处理单元块,则可以将鼠标双击( 映射)映射到调用函数:

nnoremap :call ProcessMouseDoubleClick() ProcessMouseDoubleClick()将是一个函数,该函数(1)直观地选择“单元格”区域,并且(2)发出''w !matlab以使matlab运行所选代码。

调用ProcessMouseDoubleClick时,Vim光标将位于您在文档中单击的任何位置。除此之外,鼠标没有什么特别的。因此,您还可以将任何键映射到相同的功能,例如,用于“评估单元格”的助记符命令:

map ec :call ProcessMouseDoubleClick() 因此,根本没有理由让函数名称完全引用鼠标,您可能需要将其命名为EvaluateMatlabCell() 。



更多&回答... (https://stackoverflow.com/questions/5093306)