我已经在vim中实现了一个命令,该命令将计算结果粘贴到您的文件中,即您键入
:CalP 34 * 89
并且应该将结果粘贴到光标之后。
代码如下:
command! -nargs=+ CalP :call Calculator(<q-args>) | normal! p
py from math import *
fun Calculator(arg)
redir @"
execute "py print " a:arg
redir END
let @" = strpart(@", 1)
endfun
这可以工作,但是比我想要的简单操作更麻烦,主要是因为:
py print ...
到"
寄存器的更好的方法execute "py print " a:arg
因为那py print a:arg
是行不通的let @" = strpart(@", 1)
除去在该寄存器的前面的杂散换行符py print
创建,理想本应被除去我认为这应该在一行就可以完成,但是我对vimscript的了解不够。
我将第二次推荐@Amadan的建议。如果您更喜欢Python而不是Vimscript,则可以使用该pyeval()
函数,例如直接从插入模式:
<C-R>=pyeval('34 * 89')<CR>
如果您想保留自定义命令,也可以这样做:
command! -nargs=+ CalP execute 'normal! a' . pyeval(<q-args>) . "\<Esc>"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句