我在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。
发布于 2015-01-10 17:12:59
我会同意阿马丹的建议。如果您更喜欢Python而不是Vimscript,您可以使用pyeval()函数,例如直接从插入模式:
<C-R>=pyeval('34 * 89')<CR>如果您想保留您的自定义命令,这也是可能的:
command! -nargs=+ CalP execute 'normal! a' . pyeval(<q-args>) . "\<Esc>"发布于 2015-01-10 16:57:45
这不需要编写脚本。在插入模式下,可以使用<Ctrl-R>=34*89<CR>插入该计算的结果。
:help i_CTRL-R
:help expressionhttps://stackoverflow.com/questions/27878643
复制相似问题