解说社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 727|回复: 5

[教程] 通过代码扩展。实现按句删除、段落删除,删除光标前后文本的功能半屏的输入法能用。

[复制链接]
发表于 2023-1-17 22:22:53 来自手机 | 显示全部楼层 |阅读模式
把下面代码新建一个功能或插件。在手势里调用就可以了。按句删除或者按段落删除。都是光标停留在这一句或者这一段落的任意一个字执行就能删除,删除光标前后内容,顾名思义就是。光标所在的地方。前面或者后面的内容。
第3方输入法也可以用,半屏输入法就能用。



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-1-17 22:23:27 来自手机 | 显示全部楼层
--删除光标所在句
if node.isEditable() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
    local tbl={",","。",":","?","!","……",";",",",".","!","?",";","\n",}
    for n=gb-1,1,-1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
        break
      end
    end
if gb<utf8.len(txt) then
    for n=gb,utf8.len(txt)-1,1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
        break
      end
    end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
    service.speak(s.."已删除")
   else
    service.speak("编辑框为空")
  end
  return true
end



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-1-17 22:24:06 来自手机 | 显示全部楼层
--删除光标所在段落
if node.isEditable() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
local tbl={"\n"}
    for n=gb-1,1,-1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
        break
      end
    end
if gb<utf8.len(txt) then
    for n=gb,utf8.len(txt)-1,1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
        break
      end
    end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
    service.speak(s.."已删除")
   else
    service.speak("编辑框为空")
  end
  return true
end



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-1-17 22:24:46 来自手机 | 显示全部楼层
--删除光标前文字
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb>0 then
s=utf8.sub(txt,gb+1,-1)
service.setText(node,s)
service.setSelection(node,0)
    service.speak("光标前已删")
   else
service.beep()
end
return true
end



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-1-17 22:25:18 来自手机 | 显示全部楼层
--删除光标后文字
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb<utf8.len(txt) and txt~="" then
s=utf8.sub(txt,1,gb)
service.setText(node,s)
    service.speak("光标后已删")
   else
service.beep()
end
return true
end



  来自解说社区客户端
回复

使用道具 举报

发表于 2023-1-23 08:03:43 来自手机 | 显示全部楼层
看来这个楼主玩解说是一个高手,现在有一个用户需要一个刷抖音快手的视频的插件。如果你愿意给他写,可以给你付费。如果楼主有时间可以联系我谢谢。

来自:掌上乐园
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|解说社区

GMT+8, 2024-11-1 07:46 , Processed in 0.041960 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表