我尽可能多地使用Vim来学习它
今天我不得不写很多数学函数。我把它们写成f(x)=e^(x/sqrt(x))
(例如无意义),但这很难读。
我的想法是使用maxima的控制台输出并将其插入文本中以获得类似:
x
-------
sqrt(x)
f(x) := e
非常容易阅读。
我已经知道了很多maxima命令,所以用maxima语法编写公式并将它们放在这个精彩的输出中会非常容易和高效:)
我对vimscript完全没有经验。我怎么能这样做?
答案 0 :(得分:4)
只要你有一个外部命令将(渲染的公式)输出返回到 stdout ,:read! {cmd}
命令就会插入输出(在当前行之下或在前面的{ {1}}:
[range]
您也可以为此制作自定义命令:
:read! maxima --very-quiet -r "formula"
答案 1 :(得分:1)
我在~/.vimrc
文件中使用它:
" calls maxima --very-quit -r "[ARG];"
function! AsciiMath(formula)
let cmdln='maxima --very-quiet -r "'.a:formula.';"'
let @a=system(cmdln)
if !v:shell_error
" echo @a
put a
else
echo '"'.a:formula.'" is an invalid maxima expression"'
endif
endfunction
并称之为:
:call AsciiMath("f(x):=e^(x/sqrt(x))")
我认为这个功能很容易理解,但有一些棘手的部分:
put
需要注册作为参数,请参阅:h registers
和:h put
formula
那样使用它们需要前缀
(名称空间)a:
像a:formula
一样使用它。.vimrc
文件,您应该使用function!
function
,因为否则你会收到错误(类似于
" [FUNCTIONNAME]已经定义了")system()
将其参数的控制台输出作为returnvalue返回,并将其参数的返回值放在v:shell_error
中。