大佬,按你说的改代码后,不可行哎,改成:
output := lines%n%
Sendinput,{blind}{text}output
只有第一次执行可行,后面再复制粘贴按快捷键就没反应了。每次都要重新reload ahk。
大佬,按你说的改代码后,不可行哎,改成:
output := lines%n%
Sendinput,{blind}{text}output
只有第一次执行可行,后面再复制粘贴按快捷键就没反应了。每次都要重新reload ahk。
免费可以用
我用的就是免费的。
@dog 的确存在问题。经过测试,此代码存在一些与快捷键冲突的问题:比如我使用的快捷键是shift+V,如果粘贴内容首字母与SHIFT开头的电脑上的快捷键字母一样,这个字母就会被截断。比如我使用的SHIFT+E打开everything,如果粘贴内容是EMMA,那么就会输出MMA。
#SingleInstance force
n := 1
prevClipboard := ""
+V::
if (prevClipboard != Clipboard) {
n := 1
prevClipboard := Clipboard
}
StringSplit, lines, Clipboard, `n
if (n <= lines0) {
SendInput % lines%n%
n++
}
return
额,那看来那样不行。
不过原本的那个方法如果出现 感叹号 之类的符号,会转成按键,也不行。
得改改。
试试这个,不用send方法可以避免很多奇怪问题
#SingleInstance force
n := 1
prevClipboard := ""
^j::
if (prevClipboard != Clipboard) {
n := 1
prevClipboard := Clipboard
}
StringSplit, lines, Clipboard, `n
if (n <= lines0) {
Clipboardtemp := clipboard
;Clipboard := ""
Clipboard := lines%n%
sleep,10
Send,^v
clipboard := Clipboardtemp
n++
}
return
试了下,在文本中测试,粘贴同样的内容,没发现出现刚才字母被截断的错误。
在网页输入框中测试,出现的问题是:
有的框内一次只会粘贴一行,有的框内一次则粘贴了剪贴板上的全部内容,是输入框问题?
奇怪 不应该啊
我猜测是因为两次复制的内容本质上不太一样吧
换行有两种 /n /r
上面的代码只适配了 /n 一种换行
其它可能性暂时没想到,不过应该和输入框没啥关系
你可以说说出问题的是什么输入框,我测测
经排查,可能是我安装的插件的问题。
感谢大家提供帮助!
如果位置固定的话可以用搜索酱
把%s
改为%s[]
就代表按行分隔
默认按行或者按空格分隔,依次取下一项
%s[-1]
代表从后往前依次取下一项
%s[0]
代表取第一项,%s[1]
代表取第二项
%s[5|$]
代表以$
分隔后取第6项
也可以自定义规则,例如
#p{@=%s[]}
代表点击之后给处于当前焦点的输入框赋值,内容为按换行或者空格分隔的下一项,可以绑定一个快捷键,点一下输入框按一下快捷键
之前那个版本存在两个广泛性问题,一个是对于
`n `r `n`r `r`n
有时不能正确处理,一个是部分情况下粘贴的是全部而不是一行。
下面的版本我纠正了这些问题,不得不说,new bing对于这些小细节还是很难处理到位的:
#SingleInstance force
#InstallKeybdHook
n := 1
prevClipboard := ""
Clipboardtemp := clipboard
^j::
clipboard := clipboard
k:=n-1
if (prevClipboard != Clipboard && lines%k% != Clipboard) {
n := 1
prevClipboard := Clipboard
ClipboardP := StrReplace(Clipboard, "`r`n", "`n")
ClipboardP := StrReplace(ClipboardP, "`n`r", "`n")
ClipboardP := StrReplace(ClipboardP, "`r", "`n")
ClipboardP := StrReplace(ClipboardP, "`n", "`r`n")
StringSplit, lines, ClipboardP, `r
}else{
clipboard := Clipboardtemp
}
if (n <= lines0) {
Clipboardtemp := clipboard
Clipboard := lines%n%
sleep,10
Send,^v
n++
}
return
ChatGPT写的代码细节微调确实是个灾难,越改问题越多,最后相比耗费的时间还不如自己写。
感觉能完美覆盖的只有没有疑义的常见问题。
copyq能自己写脚本.
还有一个收费的软件, 叫做 ClipboardFusion , 支持 C# 代码, 只有想不到的功能,没有无法实现的功能.
我不会写脚本, 感觉平时用clibor比较顺手了。
亲测,这个版本也可行。没有发现整体粘贴的情况。
不过这几个版本都有问题,在文本里粘贴都会自动换行保持原来的排版,但是在Excel里会隔一个空行,应该是n
r的问题吧。如果要在Excel里粘贴,是不是要去掉n
r?算了, 这个要求有点多了。 ::
把这句
StringSplit, lines, ClipboardP, `r
里面的
撇r 换成 撇r撇n
会去掉尾部换行
不过这样一来在同一个编辑框连续粘贴会胡成一片
你可以把这俩情况分配成两个快捷键
更加方便
换成
`r`n
后,需要手动换行,并且需要按两次快捷键才会出结果。
那你试试换成
`n
试试。
总之就这么三种情况,应该总有一个符合的【表情】