请问iflow目前alt+v快捷键实现图片粘贴的原理是什么
因为我用alt+v 粘贴不了
提示 未从剪切板中找到图片
win11
系统个win+v剪贴板被我干掉了(不记得什么时候),反正用win+v用不了系统的剪贴板,我使用的是ditto
当然,上述说的都是剪贴版管理程序,只要iflow访问的是底层剪贴板肯定是有数据的,但是现在不知道为什么粘贴不了图片
在终端windows terminal、vscode都测试过,一样的情况,正常用ctrl v 粘贴文本都是OK的
由于我之前没有粘贴文本的需求,今天是偶然使用发现的
试了一下没有用,vscode和windows terminal都不行,iflow由于是一个cli程序
1.快捷键被终端拦截了,可能由于终端配置了快捷键,例如分隔终端(总之,这种情况下,根本没有任何信号给到iflow)
2.除了上述被终端完全拦截的快捷键之外的其他快捷键,由于终端实现差异,不同终端对快捷键的处理后发送的转义序列标准也是不同的
所以,iflow没有说明实现细节,根本就不好排查,不知道这个序列发送给cli了没有,也不知道cli预期应该接受的快捷键
经过我的研究,iflow-cli 中换行的转义序列是 \u000A\u0011
昨天试用tabby终端,发现iflow-cli收不到, 编写了一个tabby插件,测试了一下,直接向cli发送转义序列 \u000A\u0011 确实就触发了换行操作
插件的地址在这 tabby-iflow-newline
Tabby iflow Newline Plugin
一个 Tabby 终端插件,通过注册 Ctrl+Enter 快捷键向 iflow 发送 快捷键指令序列(\u000A\u0011),让终端中的 iflow 程序能够正确接收到换行指令,避免 Tabby 对快捷键的处理导致 iflow 无法收到该序列。
同样的操作,在vscode中也是一样的
通过设置vscode的keybindings.json
{
"key": "ctrl+enter",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u000A\u0011" // 定义终端快捷键Ctrl+Enter,用于像iflow中发送"换行指令"的转义序列
},
"when": "terminalFocus"
},
所以,不知道iflow中这些功能的底层实现是什么,是不是遵循了ANSI X3.64标准
总之,cli程序需要实现快捷键操作,需要对不同终端下的标准做适配,或者支持用户自定义,同时公布实现的细节,方便野生开发者排查
ps: tabby真是答辩,一堆bug,写完插件我就卸载了,坑死
@10111 @10008873411 @10011695425
通过逆向iflow-cli源码,问题已经定位
下面是解决方案
10111
(蜂蜜熊猫)
7
感谢反馈。目前Windows平台还不支持截图然后粘贴,支持的是复制图片然后粘贴。
1 个赞
这个时候就得推荐pixpin了(截图能想到的功能它都有),截图后直接贴到iflow里 
2 个赞
我截图是自动保存到剪贴版的,忘记说明了,问题都排查清除了,可以看看相关分析文章
1 个赞