我在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。
答案 0 :(得分:4)
这不需要脚本。在插入模式下,您可以使用<Ctrl-R>=34*89<CR>
插入该计算的结果。
:help i_CTRL-R
:help expression
答案 1 :(得分:3)
我将第二个@Amadan的建议。如果你喜欢Python而不是Vimscript,你可以使用pyeval()
函数,例如直接来自插入模式:
<C-R>=pyeval('34 * 89')<CR>
如果你想保留自定义命令,那也是可能的:
command! -nargs=+ CalP execute 'normal! a' . pyeval(<q-args>) . "\<Esc>"