“脚本” vim 使用 python 具有更大的粒度
我正在尝试编写一个可以自动化 vim 的 python 脚本,但是 python vim 界面并没有给我足够的能力来完成我需要的一切。我想与 vim 进行通信,就好像我的脚本是一个 tty (能够发出“可视模式”指令等)。就 vim 而言,我的脚本是人类运行 xterm(或其他)。可以在不使用 python 构建我自己的终端模拟器的情况下完成此操作吗?
I'm attempting to write a python script that can automate vim, but the python vim interface doesn't give me enough power to do everything I need. I want to communicate with vim as if my script were a tty (able to issue "visual mode" instructions etc). As far as vim is concerned, my script is a human running xterm (or whatever). Can this be done without building my own terminal emulator in python?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
所有非 vimscript 接口都受到诅咒:与 vim 通信的唯一方法(除非您想编辑/获取使用缓冲区对象可用的缓冲区的内容)是
execute
(vim.command (string)
在 python 中)和eval
(vim.eval(string)
在 python 中),都需要序列化参数。如果您只想启动视觉模式,请使用或
。但是,例如,如果您想将某些值返回给调用者函数,则必须使用
All non-vimscript interfaces are cursed: the only way to communicate with vim (unless you want to edit/get contents of a buffer which is available using buffer object) are
execute
(vim.command(string)
in python) andeval
(vim.eval(string)
in python), both requiring serializing arguments. If you want to just start visual mode useor
. But if you want, for example, to return some value to a caller function you will have to use