gpt4 book ai didi

python - "scripting"vim 使用更细粒度的 python

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:02 24 4
gpt4 key购买 nike

我正在尝试编写一个可以使 vim 自动化的 python 脚本,但是 python vim 界面没有给我足够的能力来完成我需要的一切。我想与 vim 通信,就好像我的脚本是一个 tty(能够发出“可视模式”指令等)。就 vim 而言,我的脚本是一个人类运行的 xterm(或其他)。如果不在 python 中构建我自己的终端仿真器,可以做到这一点吗?

最佳答案

所有非 vimscript 接口(interface)都被诅咒:与 vim 通信的唯一方法(除非你想编辑/获取使用缓冲区对象可用的缓冲区的内容)是执行( vim.command(string) in python) 和 eval (vim.eval(string) in python),两者都需要序列化参数。如果你只想启动可视模式使用

vim.command("normal! V")

vim.eval("feedkeys('V')")

.但是,例如,如果您想要向调用函数返回一些值,则必须使用

import json
# Some code that puts result into variable r
# This won't work if r contains non-unicode strings,
# you will have to write your own serializer in this case.
# As far as I know, it will also fail if some characters in the string
# can be represented only using surrogate pairs.
vim.command("let reply=".json.dumps(r))
# Now in the caller function variable l:reply is defined

关于python - "scripting"vim 使用更细粒度的 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com