1.选中整个表格,右键单击并选择“表格属性”。
2.在弹出的对话框中,切换到“行”选项卡。
3.务必勾选“允许跨页断行”。此选项允许表格行在页面底部被正常断开,内容延续到下一页,从而避免因一行内容过多而产生的大面积空白。
4.检查“指定高度”选项。如果已勾选且行高为“固定值”,建议取消勾选,或将其改为“最小值”,让行高根据内容灵活调整。
此外,在“表格”选项卡中,可将文字环绕设置为“无”,并指定宽度为100%(百分比),有助于表格更充分地利用页面宽度。
--------------------------------------------------------
作者:wkqa0000040
链接:https://wenku.baidu.com/view/7963b6d3e13a580216fc700abb68a98271feac80.html
来源:百度文库
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Tuesday, October 13, 2026
表格文本跨页时有大片空白怎么处理?
Tuesday, September 1, 2026
tbquant V3如何实现日志中时间格式的正确输出
正确的时间格式化拼接 (内核示例)
If(EnableLogPrint)
{
// 1. 日期格式化:将 "YYYYMMDD" 转为 "YYYY-MM-DD"
raw_date_str = Text(Date);
str_date = Left(raw_date_str, 4) + "-" + Mid(raw_date_str, 4, 2) + "-" + Right(raw_date_str, 2);
// 2. 时间格式化:提取时/分/秒并补齐前导 0 (保证输出如 "09:05:00")
h_str = Text(Hour);
m_str = Text(Minute);
s_str = Text(Second);
If(Len(h_str) < 2) h_str = "0" + h_str;
If(Len(m_str) < 2) m_str = "0" + m_str;
If(Len(s_str) < 2) s_str = "0" + s_str;
str_time = h_str + ":" + m_str + ":" + s_str;
// 3. 组合完整的日志前缀:[Bar:100 | 2026-03-30 09:30:00]
log_time_prefix = "[Bar:" + Text(CurrentBar) + " | " + str_date + " " + str_time + "] ";
// 4. 打印条件状态
log_str = log_time_prefix + "A1多头条件:" + IIFString(A1_Buy, "【True】", "【False】")
+ " | A1空头条件:" + IIFString(A1_Sell, "【True】", "【False】");
Print(log_str);
}
选自GM
Friday, August 7, 2026
Avantage分析XPS结果步骤
1 将中所有要分析的XPS图谱并拖进Avantage窗口。
2 选中C1s窗口,选择工具栏中的峰拟合,在弹出的窗口中选择自动添加峰。
3 选择fit peaks标签,点击拟合这个层,拟合后若是还有没有寻到的峰,点击Add fitted peak,选择添加单个峰直到添加完所有峰,选择fit peaks标签,点击拟合所有层,点击确定。回到主界面,点击峰拟合标签,FWHM拟合项目下的0.5:3.5,将所有3.5改为2.5。确定C1s的峰位后,和284.8eV做对比,单击图谱左上角空白处,选中所有图谱,点击电荷移位,C1s与284.8eV相比小的,正位移差值,否则负位移差值,注意选择允许小数位移。按以上方法确定其他峰。
4 点击主界面的报告-报告至MS Excel导出数据。
Monday, June 8, 2026
word2010工具栏嵌入deepseek来检测书写语法
1、创建宏
一、前期准备
获取API密钥
1. 访问 DeepSeek 官网:https://platform.deepseek.com
2. 注册/登录账号
3. 进入控制台:API Keys
4. 创建新的API密钥并保存
启用Word开发工具
1. 文档 → 选项 → 自定义功能区
2. 右侧勾选「开发工具」
3. 确定
二、创建VBA代码
打开VBA编辑器
1. 点击「开发工具」选项卡
2. 点击「Visual Basic」
或
按 Alt + F11
添加引用
1. 工具 → 引用
2. 勾选:
☑ Microsoft XML, v6.0
☑ Microsoft VBScript Regular Expressions 5.5
3. 确定
创建新模块
1. 插入 → 模块
2. 粘贴以下代码
三、完整代码
Option Explicit
' API配置(请替换为你的真实API密钥)
Private Const API_KEY As String = "your_api_key_here"
Private Const API_URL As String = "https://api.deepseek.com/v1/chat/completions"
Private Const MODEL_NAME As String = "deepseek-chat"
' 主函数:检查选中文本的病句和错别字
Sub CheckGrammarWithDeepSeek()
On Error GoTo ErrorHandler
' 1. 检查是否选中文本
If Selection.Type = wdSelectionIP Then
MsgBox "请先选择要检查的文本段落!", vbExclamation, "提示"
Exit Sub
End If
Dim selectedText As String
selectedText = Selection.Text
' 2. 长度保护(DeepSeek上下文约8K token,中文约4000字)
If Len(selectedText) > 5000 Then
If MsgBox("选中文本较长(约" & Len(selectedText) & "字符),可能影响处理速度。" & vbCrLf & _
"建议分批量检查。是否继续?", vbYesNo + vbQuestion, "文本过长") = vbNo Then
Exit Sub
End If
End If
' 3. 显示状态栏提示
Dim oldStatusBar As Boolean
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
StatusBar = "正在连接AI进行语法检查..."
' 4. 创建HTTP对象
Dim http As Object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
' 设置超时(毫秒):解析、连接、发送、接收
http.setTimeouts 30000, 60000, 60000, 120000
' 5. 构建系统提示(内核:只报告明显必须改正的错误)
Dim systemPrompt As String
systemPrompt = "你是一个严格的中文校对专家。请只指出用户文本中**明显且必须改正**的错误,包括:" & vbCrLf & _
"1. 错别字(如同音字、形近字误用,例如:的/地/得混淆、'在'写成'再'等)" & vbCrLf & _
"2. 病句(语序错误、主谓搭配不当、成分缺失导致语句不通)" & vbCrLf & _
"3. 标点符号严重错误(如句号缺失导致句子粘连)" & vbCrLf & _
"4. 重复或遗漏关键词汇" & vbCrLf & vbCrLf & _
"忽略轻微的修辞、风格问题(如口语化表达、重复虚词等)。" & vbCrLf & _
"输出格式要求(严格遵守):" & vbCrLf & _
"如果没有错误,只输出:未发现必须改正的错误。" & vbCrLf & _
"如果有错误,每一条错误按照以下格式列出:" & vbCrLf & _
"----------------------------------------" & vbCrLf & _
"原文:[有错误的原句或短语]" & vbCrLf & _
"类型:[错别字/病句/标点/重复遗漏]" & vbCrLf & _
"修改建议:[正确写法]" & vbCrLf & _
"说明:[简短的错误解释]" & vbCrLf & _
"----------------------------------------" & vbCrLf & _
"注意:不要输出任何额外说明、开场白或结束语,直接输出检查结果。"
' 6. 构建请求体(温度设为0.2,保证结果稳定)
Dim requestBody As String
requestBody = "{""model"":""" & MODEL_NAME & """," & _
"""messages"":[" & _
"{""role"":""system"",""content"":""" & SafeJsonEncode(systemPrompt) & """}," & _
"{""role"":""user"",""content"":""" & SafeJsonEncode(selectedText) & """}" & _
"],""temperature"":0.2,""max_tokens"":1500}"
StatusBar = "正在提交请求..."
' 7. 发送请求
With http
.Open "POST", API_URL, False
.setRequestHeader "Content-Type", "application/json; charset=UTF-8"
.setRequestHeader "Authorization", "Bearer " & API_KEY
.send requestBody
End With
StatusBar = "正在解析结果..."
' 8. 处理响应
If http.Status = 200 Then
Dim responseText As String
responseText = ParseResponseImproved(http.responseText)
' 在Word中插入结果(保留原文本格式)
Selection.Collapse Direction:=wdCollapseEnd
Selection.InsertAfter vbCrLf & vbCrLf & "【DeepSeek语法检查结果】" & vbCrLf
Selection.InsertAfter String(50, "=") & vbCrLf
Selection.InsertAfter responseText
Selection.InsertAfter vbCrLf & String(50, "=") & vbCrLf
MsgBox "检查完成!", vbInformation, "成功"
Else
Dim errorDetail As String
errorDetail = ExtractApiError(http.responseText)
MsgBox "API请求失败:" & http.Status & " " & http.statusText & vbCrLf & _
"详细信息:" & errorDetail, vbCritical, "错误"
End If
' 9. 恢复状态栏
StatusBar = ""
Application.DisplayStatusBar = oldStatusBar
Exit Sub
ErrorHandler:
StatusBar = ""
Application.DisplayStatusBar = oldStatusBar
MsgBox "运行时错误:" & Err.Description & vbCrLf & "错误编号:" & Err.Number, vbCritical, "异常"
End Sub
' 安全JSON编码(处理所有特殊字符)
Private Function SafeJsonEncode(ByVal InputText As String) As String
Dim result As String
Dim i As Long
Dim ch As String
result = ""
For i = 1 To Len(InputText)
ch = Mid(InputText, i, 1)
Select Case ch
Case "\": result = result & "\\"
Case """": result = result & "\"""
Case vbCr: result = result & "\r"
Case vbLf: result = result & "\n"
Case vbTab: result = result & "\t"
Case vbBack: result = result & "\b"
Case vbFormFeed: result = result & "\f"
Case Else
' 中文等Unicode字符无需转义,直接保留
result = result & ch
End Select
Next i
SafeJsonEncode = result
End Function
' 改进的JSON解析(处理多行、转义字符)
Private Function ParseResponseImproved(ByVal jsonText As String) As String
On Error GoTo ParseErr
' 使用正则提取 "content" 字段的内容(支持转义引号和换行)
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
' 模式说明:匹配 "content": " ... " ,其中内容可以包含转义符 \"
regex.Pattern = """content""\s*:\s*""((?:[^""\\]|\\.)*?)""(?=\s*[,}])"
regex.Global = False
regex.MultiLine = True
regex.IgnoreCase = False
If regex.Test(jsonText) Then
Dim matches As Object
Set matches = regex.Execute(jsonText)
Dim content As String
content = matches(0).SubMatches(0)
' 还原转义串行
content = UnescapeJsonString(content)
ParseResponseImproved = Trim(content)
Else
' 备用解析:查找 finish_reason 判断是否成功
If InStr(jsonText, "finish_reason") > 0 Then
ParseResponseImproved = "API响应解析失败,但请求可能已处理。原始片段:" & vbCrLf & Left(jsonText, 300)
Else
ParseResponseImproved = "无法解析API响应,请检查API密钥或网络。"
End If
End If
Exit Function
ParseErr:
ParseResponseImproved = "解析响应时出错:" & Err.Description & vbCrLf & "前200字符:" & Left(jsonText, 200)
End Function
' 还原JSON转义字符串
Private Function UnescapeJsonString(ByVal str As String) As String
Dim result As String
Dim i As Long
result = ""
i = 1
While i <= Len(str)
If Mid(str, i, 1) = "\" And i < Len(str) Then
Dim nextChar As String
nextChar = Mid(str, i + 1, 1)
Select Case nextChar
Case "n": result = result & vbCrLf: i = i + 2
Case "r": result = result & vbCr: i = i + 2
Case "t": result = result & vbTab: i = i + 2
Case """": result = result & """": i = i + 2
Case "\": result = result & "\": i = i + 2
Case "u": ' 简单处理Unicode转义(如 \u4e2d),直接忽略并跳过6个字符
result = result & "[Unicode]": i = i + 6
Case Else: result = result & "\": i = i + 1
End Select
Else
result = result & Mid(str, i, 1)
i = i + 1
End If
Wend
UnescapeJsonString = result
End Function
' 提取API返回的错误信息
Private Function ExtractApiError(ByVal jsonText As String) As String
On Error Resume Next
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = """message""\s*:\s*""([^""]+)"""
If regex.Test(jsonText) Then
ExtractApiError = regex.Execute(jsonText)(0).SubMatches(0)
Else
ExtractApiError = "无详细错误信息"
End If
End Function
' 可选辅助函数:检查整个文档
Sub CheckWholeDocument()
Selection.WholeStory
CheckGrammarWithDeepSeek
End Sub
' 可选辅助函数:检查当前段落
Sub CheckCurrentParagraph()
Selection.Paragraphs(1).Range.Select
CheckGrammarWithDeepSeek
End Sub
四、另存为(另存选项) 启用宏的模板,扩展名为dotm,将此模板保存在word的templates位置。在word中,文档-选项-加载项-模板-添加,选择刚新建的模板。
五、在word中,自定义快速访问工具栏,选择宏,添加刚新建的宏到快捷访问栏。
六、用法。选中文本,电极自定义工具栏的宏命令用来检测选中文本或全文。
Monday, June 1, 2026
163 邮箱提示 Unsafe Login 的拦截问题-workbuddy中163邮箱IMAP登录
# 登录成功后,发送 IMAP ID 命令声明客户端信息
client._simple_command('ID', '("name" "YourAppName" "version" "1.0" "vendor" "YourVendor")')
# 随后再执行 SELECT 操作
client.select_folder('INBOX')
Monday, May 18, 2026
Sunday, May 10, 2026
windows下用小狼毫输入法,任务栏会卡顿的佬看这里
1. 在Windows设置中打开 时间和语言->输入->高级键盘设置 勾选允许我为每个应用窗口使用不同的输入法。
2. 还有更改用户文档夹中weasel.custom.yaml里面的 “style/display_tray_icon” 为 false。
这样就不会卡住了。
https://linux.do/t/topic/1329559
Friday, May 8, 2026
Word中如何删除目录页的页码
word中插入目录之后想要为每页添加页码,如果我们直接添加页码的话会出现目录是第一页,正文部分的页码是从2开始而不是1,用下面的方法就可以解决
首先让文档中的所有符号可见
第一步,把目录下的分页符删除,此时正文会跑到目录页来,通过回车使正文部分回到下一页,在插入的目录下方插入一个分节符(下一页),分节符在菜单栏下的布局里面找到分隔符,再选择分节符(从下一页开始)
第二步在正文页双击页脚,点击工具栏里的“链接到前一节”取消选中,默认是选中的,然后点击工具栏左方的页码,选择“当前位置”,“普通数字2”,正文部分的页码就出现了,如果你的页码是0,那么就点击一下工具栏中的“页码”,选择“编辑页码格式”,找到页码编号,设成1就可以了,关闭页眉和页脚设置。
最后不要忘记更新目录。
https://www.cnblogs.com/shellpicker/p/10131118.html
Saturday, May 2, 2026
在 VirtualBox 中用iso创建新的虚拟机
一、先新建虚拟机,一般采用默认设置即可。
二、导入iso文档。
1. 打开虚拟盒子。
2、右键单击虚拟机并选择“设置”选项。
3、单击存储。
4、在“存储驱动器”部分下,选择光盘(空)项。
5、在“属性”部分下,单击光盘图标并选择选择磁盘文档按钮。
6、选择ISO文档。
7、单击打开按钮。
8、(可选)选中Live CD/DVD选项以保持 ISO 安装,即使来宾操作系统试图将其弹出。
9、(可选)选中Hot-pluggable选项以使虚拟驱动器显示为可热插拔的外围设备。
10、单击确定按钮。
完成这些步骤后,ISO 文档将挂载到虚拟机。如果这是安装媒体,安装程序将出现在访客设备上。如果将映像连接到带有操作系统的虚拟机,则该磁盘将出现在操作系统中。 如果要卸载 ISO 文档,请在“存储”设置中单击“选择磁盘文档”按钮,然后选择“从虚拟驱动器中删除磁盘”选项。
https://www.xitongbuluo.com/jiaocheng/74579.html
virtualbox如何导入vdi格式文件生成新的虚拟机
1. 首先打开Oracle VirtualBox,进入界面,然后点击新建图标,开始创建新的虚拟机。
2. 输入虚拟机名称及存放位置,类型,版本
3. 点击下一步,输入内存大小,这里默认输入2048MB
4. 添加虚拟磁盘,这里有三个选项(不添加虚拟硬盘,现在创建虚拟硬盘,使用已有虚拟硬盘),由于我们已经有从其他地方复制过来的VDI磁盘文档,故只需选择使用已有的虚拟硬盘文档,点击创建
5. 点击左侧Anroid9虚拟机图标,启动虚拟机
6. 进入grub模式引导,选择kernel /android-9.0-42/kernel root=/dev/ram0 SRC=/adnroid-9.0-r2
7. 按b 重启(按e可以根据情况编辑)
可以将默认的grub edit> kernel /android-9.0-rc2/kernel quiet root=/dev/ram0> ....
修改为:
grub edit> kernel /android-9.0-rc2/kernel quiet root=/dev/ram0> .... nomodeset xforcevesa
8. 启动后界面如下,出现熟悉的Android界面
https://baijiahao.baidu.com/s?id=1695305523615222605&wfr=spider&for=pc
几个在线扫描病毒软件的网站
2、http://virscan.org/
3、https://virusscan.jotti.org/
4、http://onlinelinkscan.com/
https://cloud.tencent.com/developer/article/1852436
Tuesday, April 28, 2026
Joplin在坚果云同步时的注意
1. 在坚果云网页根目录下新建Joplin文档夹。
2. 在Joplin客户端填写:
WebDAV URL: https://dav.jianguoyun.com/dav/Joplin
注意!!!Joplin中的J要大写。
PASS为生成的应用KEY
3. 最大并发链接数:由于坚果云的限制,只能设置为1,否则会提示Too many requests。
Friday, April 17, 2026
小狼毫直接上屏顿号
在数据文档夹创建mypunctuator.yaml
粘贴如下:
config_version: '1.4.1'
punctuator:
full_shape:
" " : { commit: " " }
"," : { commit: , }
"." : { commit: 。 }
"<" : [ 《, 〈, «, ‹ ]
">" : [ 》, 〉, », › ]
"/" : [ 、, /, "/", ÷ ]
"?" : { commit: ? }
";" : { commit: ; }
":" : :
"'" : { pair: [ "‘", "’" ] }
"\"" : { pair: [ "“", "”" ] }
"\\" : [ 、, \, "\\" ]
"|" : [ ・, |, "|", "§", "¦" ]
"`" : [ `, "`" ]
"~" : [ 〜, "~", ~, 〰 ]
"!" : { commit: ! }
"@" : [ @, "@", ☯ ]
"#" : [ #, "#", ⌘ ]
"%" : [ %, "%", "°", "℃" ]
"$" : [ ¥, "$", "€", "£", "¥", "¢", "¤" ]
"^" : { commit: …… }
"&" : [ &, "&" ]
"*" : [ *, "*", ・, ×, ※, ❂, · ]
"(" : (
")" : )
"-" : [ -, "-" ]
"_" : ——
"+" : [ +, "+" ]
"=" : [ =, "=" ]
"[" : [ 「, 【, 〔, [ ]
"]" : [ 」, 】, 〕, ] ]
"{" : [ 『, 〖, { ]
"}" : [ 』, 〗, } ]
half_shape:
"," : { commit: , }
"." : { commit: 。 }
"<" : "《"
">" : "》"
"/" : "/"
"?" : { commit: ? }
";" : { commit: ; }
":" : { commit: : }
"'" : { pair: [ "‘", "’" ] }
"\"" : { pair: [ "“", "”" ] }
"\\" : "、"
"|" : "|"
"`" : { commit: "`" }
"~" : ~
"!" : { commit: ! }
"@" : "@"
"#" : "#"
"%" : %
"$" : [ ¥, "$", "€", "£", "¥", "¢", "¤" ]
"^" : { commit: …… }
"&" : "&"
"*" : "*"
"(" : { pair: [ (, ) ] }
")" : )
"-" : -
"_" : ——
"+" : "+"
"=" : "="
"[" : { pair: [ 【, 】 ] }
"]" : 】
"{" : "{"
"}" : "}"
key_binder:
bindings:
# commonly used paging keys
- { when: composing, accept: ISO_Left_Tab, send: Page_Up }
- { when: composing, accept: Shift+Tab, send: Page_Up }
- { when: composing, accept: Tab, send: Page_Down }
- { when: has_menu, accept: minus, send: Page_Up }
- { when: has_menu, accept: equal, send: Page_Down }
- { when: paging, accept: comma, send: Page_Up }
- { when: has_menu, accept: period, send: Page_Down }
- { when: paging, accept: bracketleft, send: Page_Up }
- { when: has_menu, accept: bracketright, send: Page_Down }
在luna_pinyin_simp.custom.yaml写入:
patch:
punctuator/import_preset: mypunctuator
key_binder/import_preset: mypunctuator
recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'
https://www.cnblogs.com/Joynic/p/16409799.html
Sunday, March 8, 2026
Tuesday, March 3, 2026
将小狼毫(Rime输入法)设置为通过 Ctrl +space( 空格键)切换中英文输入模式
打开配置文档:
Rime 的配置文档通常位于 C:\Users\用户名\AppData\Roaming\Rime 文档夹下,打开其中的 default.custom.yaml 或者 luna_pinyin.custom.yaml 文档。
添加快捷键配置:
在配置文档中找到 key_binder 部分(如果没有,可以手动添加),然后插入以下内容:
yaml
复制代码
key_binder:
bindings:
- { when: composing, accept: "Control+space", toggle: ascii_mode }
- { when: has_menu, accept: "Control+space", toggle: ascii_mode }
这段代码的意思是,当输入法处于「正在输入」或「有候选项菜单」时,按下 Ctrl + 空格 将在中文模式与英文模式之间切换。
重新部署输入法:
修改完成并保存文档后,右键点击输入法状态栏的图标,选择「重新部署」或「重新加载配置文档」,使更改生效。
完成后,Ctrl + 空格 就可以用来切换中英文输入模式了。
https://www.nodeseek.com/post-166433-1
Wednesday, February 25, 2026
google搜索引擎传输url中文乱码的问题解决
http://www.google.cn/search?q=你的中文搜索关键词&ie=GB2312&oe=GB2312&hl=zh-CN(GB2312编码)
在url末尾加上后面的尾巴就可以了。
Friday, February 20, 2026
使用 RSS 订阅 Quora
kill-the-newsletter。
简单来说,这个服务就是生成一个随机的邮件地址和对应的 RSS 地址,你可以把这个邮件地址添加到需要接收邮件的地方,比如一些 newsletter 里。然后这个服务就可以把发到这个邮箱的邮件,都转换成 RSS 来输出!
Quora 是支持添加多个邮件地址的,我们可以把上面生成的邮件地址添加到 Quora 里,邮件验证之后,将这个地址设置为 Quora 的 Primary Email,就可以收到 Quora Digest 的 RSS 了。
别忘了,验证邮件也是以 RSS 的形式输出到了订阅里。
最后,kill-the-newsletter 也是一个开源的应用,代码托管在 github,如果你有能力,也可以自己部署一个服务玩玩。
https://slarker.me/newsletter-to-rss/
Wednesday, February 4, 2026
小狼毫输入法如何导入自定义短语及如何实现v模式输入
1. 如何处理自己以前保存的自定义短语
直接打开 Excel 或 WPS表格 来处理:
用记事本打开 phrases.ini,全选复制,粘贴到 Excel 的 A 列。
使用 “数据” -> “分列” 功能,以 逗号(,) 和 等号(=) 为分隔符。
你会得到三列:
A列:缩写 (如 jq)
B列:位置 (如 1)
C列:内容 (如 经常)
调整顺序: 在 D 列用公式 =C1&CHAR(9)&A1&CHAR(9)&B1 (CHAR(9) 是 Tab 键),或者手动把内容列换到最前面。
复制结果到 custom_phrase.txt 中即可。
避坑指南
Tab 是关键: Rime 的自定义短语文档必须用 Tab(制表符) 分隔,不能用空格,否则小狼毫会报错。
编码: 转换出的文档一定要确认是 UTF-8 编码,Windows 默认的 ANSI 编码会导致乱码。
2. 如何启用自定义短语
在用户文档夹中找到 default.custom.yaml 或者你正在使用的输入法皮肤配置文档(如 luna_pinyin.simple.custom.yaml)。
在 patch: 下方添加以下配置(注意缩进):
YAML
patch:
"engine/translators/+" :
- table_translator@custom_phrase
custom_phrase:
dictionary: ""
user_dict: custom_phrase
db_class: stabledb
enable_completion: false
enable_sentence: false
initial_quality: 1000 # 这里的数字大一些,确保短语排在第一位
第四步:重新部署
右键点击任务栏的小狼毫图标。
选择 “重新部署” (Deploy)。
等待几秒钟,试着输入你定义的缩写,看看短语是否已经生效
3. 如何开启v模式?
新建或修改luna_pinyin_simp.custom.yaml
# luna_pinyin_simp.custom.yaml
patch:
# 1. 内核引擎处理器
engine/processors:
- ascii_composer
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
# 2. 翻译器顺序:确保 script_translator 在前保证中文正常
engine/translators:
- punct_translator
- script_translator
- lua_translator@v_eng_translator
- table_translator@custom_phrase
# 3. 匹配规则:允许 v 后面跟字母、数字、点、@等符号
recognizer/patterns:
v_eng: "^v[a-zA-Z0-9.@_-]*$"
# 4. 解决小键盘导致输入框消失的问题
# 将小键盘数字映射为普通数字输入,避免触发“选词”逻辑
key_binder/bindings:
- { when: composing, accept: KP_0, send: 0 }
- { when: composing, accept: KP_1, send: 1 }
- { when: composing, accept: KP_2, send: 2 }
- { when: composing, accept: KP_3, send: 3 }
- { when: composing, accept: KP_4, send: 4 }
- { when: composing, accept: KP_5, send: 5 }
- { when: composing, accept: KP_6, send: 6 }
- { when: composing, accept: KP_7, send: 7 }
- { when: composing, accept: KP_8, send: 8 }
- { when: composing, accept: KP_9, send: 9 }
- { when: composing, accept: KP_Decimal, send: "." }
新建rime.lua
function v_eng_translator(input, seg)
if input:match("^v[a-zA-Z0-9.@_-]*$") then -- 只处理v+纯英文
local eng_str = input:sub(2) -- 去掉第一个字符v
yield(Candidate("v_eng", seg.start, seg._end, eng_str, "英文模式"))
end
end
修改 default.custom.yaml
添加
patch:
engine:
translators:
- lua_translator@v_eng_translator