如何简化此粘贴计算器

德克萨斯洪水

我已经在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

这可以工作,但是比我想要的简单操作更麻烦,主要是因为:

  1. 我不知道将的输出重定向py print ..."寄存器的更好的方法
  2. 我不得不写,execute "py print " a:arg因为那py print a:arg是行不通的
  3. let @" = strpart(@", 1)除去在该寄存器的前面的杂散换行符py print创建,理想本应被除去

我认为这应该在一行就可以完成,但是我对vimscript的了解不够。

英戈·卡卡特(Ingo Karkat)

我将第二次推荐@Amadan的建议。如果您更喜欢Python而不是Vimscript,则可以使用该pyeval()函数,例如直接从插入模式:

<C-R>=pyeval('34 * 89')<CR>

如果您想保留自定义命令,也可以这样做:

command! -nargs=+ CalP execute 'normal! a' . pyeval(<q-args>) . "\<Esc>"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章