从 python class 创建一个 vim 实例?
Create a vim instance from a python class?
我正在调用一个 python 函数,该函数 returns 是一个字典,它可以工作,但我只是想知道是否有办法在 vimscript 中创建这样的实例 m.multi(3), m.div(20,5)
.这只是一个例子,不确定最后两行。
python3 <<EOF
class Multiply:
@staticmethod
def myfunc(n):
print("Answer is:", n * n)
EOF
python3 m = Multiply
python3 vim.command(f"let multi={m}")
call multi(4)
将 Multi
定义为 VimScript 函数并在其中调用 python:
python3 <<EOF
import vim
class Multiply:
@staticmethod
def myfunc(n):
print("Answer is:", n * n)
EOF
" Single global instance
python3 m = Multiply()
function! Multi(i)
" int() is required as vim.eval() returns a string even for int arg
python3 m.myfunc(int(vim.eval('a:i')))
endfunction
测试::call Multi(4)
我不认为这是可能的,将面向对象的东西留在 python 代码中。
我正在调用一个 python 函数,该函数 returns 是一个字典,它可以工作,但我只是想知道是否有办法在 vimscript 中创建这样的实例 m.multi(3), m.div(20,5)
.这只是一个例子,不确定最后两行。
python3 <<EOF
class Multiply:
@staticmethod
def myfunc(n):
print("Answer is:", n * n)
EOF
python3 m = Multiply
python3 vim.command(f"let multi={m}")
call multi(4)
将 Multi
定义为 VimScript 函数并在其中调用 python:
python3 <<EOF
import vim
class Multiply:
@staticmethod
def myfunc(n):
print("Answer is:", n * n)
EOF
" Single global instance
python3 m = Multiply()
function! Multi(i)
" int() is required as vim.eval() returns a string even for int arg
python3 m.myfunc(int(vim.eval('a:i')))
endfunction
测试::call Multi(4)
我不认为这是可能的,将面向对象的东西留在 python 代码中。