将VIM与MAXIMA集成

时间:2017-12-11 16:02:31

标签: vim latex maxima

我正在使用Maxima,LaTeX和VIM编写大量数学物理文本。我想将Maxima代码保留在LaTeX源代码中,并且可以选择向Maxima发送注释块并使用结果填写以下maximaout环境。

一个例子:

Error: unexpected symbol in "ga$getData(3A63528988"

当我将光标放在%'环境中时我希望vim命令获取最大值代码,将其发送到最大值并粘贴到结果中:

ids = "ga:5A537372"

我目前正在使用一个小脚本并直接在vim中输入maxima命令并将结果粘贴到光标位置:

Error in ga$getData(ids = "ga:5A537372", start.date = "2017-12-01",  : 
  error in fetching data: Invalid value 'ga:5A537372'. Values must match the following regular expression: 'ga:[0-9]+'

vim2maxima.sh脚本负责简化结果,将其转换为tex并过滤出Maxima输出的TeX部分

%<maxima>
%numer:true$
%/* Physical resolution limit of the eye */
%lambda:500E-9$
%d2:0.008$
%x:5000$
%alpha(d):=asin(1.22*lambda/d)$
%a1:alpha(d1)*180/%pi;
%dx(d):=tan(alpha(d))*x$
%dx1:dx(d1);
%</maxima>

我想改进我的粗略脚本以向后搜索%<maximaout> (a1)0.01747521302242873 (a2)0.004368803192105943 (dx1)1.525000070931567 (dx2)0.3812500011083056 %</maximaout> 并转发"call maxima Kalculation in insert mode and paste result imap <C-S-C> <C-r>=MaximaCalc()<CR><BS> function MaximaCalc() let args = input("maxima:") let cmd="vim2maxima.sh " . args . ";" let result=system(cmd) let result=substitute(result, '\n', "", "g") let result=substitute(result, '\$\$', "$", "g") return result endfunction ,删除maxima --very-quiet --batch-string "tex(ratsimp(($*)));" | egrep '^\$\$.+' 标记和注释百分号。

我不知道如何通过在当前VIM缓冲区中向后和向前搜索来获取文本。任何提示或指示?

0 个答案:

没有答案