Word使用分节符分成不同部分并分别编号
由于工作的需要不得不再次使用word
,
本文针对使用word
出题给出模板,将整个word
分成试题和答案两部分,并且两部分分别统计页数和分别从1开始编号,也即是在Word中实现分节页码并显示第一节共X页
和第二节共Y页
.
一、正确插入分节符并设置页码
- 插入分节符:
- 将光标放在第一节的最后一页的末尾(即需要分节的位置)
- 点击
布局
(或页面布局
)选项卡 - 在
页面设置
组中点击分隔符
- 选择
下一页
(这样会在新页开始新节)
- 设置页码:
- 双击页脚区域进入页脚编辑模式
- 在
页眉和页脚工具
选项卡中,取消链接到前一节
的勾选(确保两节的页脚独立) - 在第一节的页脚中插入页码(设置为
第1页
) - 在第二节的页脚中插入页码(设置为从1开始)
二、插入 SectionPages 域统计各节数量
在第一节最后一页的页脚中:
- 双击页脚区域进入编辑模式
- 在页脚中输入:
第一节共x页
- 按
Alt + F9
打开域代码视图(或点击插入
→文档部件
→域
) - 在域代码对话框中,选择
SectionPages
域 - 点击
确定
,域代码会显示为{ SECTIONPAGES }
- 输入页,完成输入:第一节共
{ SECTIONPAGES }
页 - 按
Alt + F9
切换回正常视图,显示为第一节共5页
(假设第一节有5页) - 按
F9
更新域,显示正确的页数
在第二节最后一页的页脚中:
- 双击页脚区域进入编辑模式
- 在页脚中输入:
第二节共y页
- 按
Alt + F9
打开域代码视图 - 插入
{ SECTIONPAGES }
域 - 输入页,完成输入:第二节共
{ SECTIONPAGES }
页 - 按
F9
更新域,显示正确的页数
三、重要说明
域代码更新:
Word
的域代码在文档内容变化后不会自动更新。每次修改文档后,需要按F9更新域,或在打印预览时自动更新。域代码格式:您看到的
{ SECTIONPAGES }
是域代码,实际显示时会自动替换为当前节的总页数。
四、总结
使用Word
的域代码{ SECTIONPAGES }
,您可以在每节的最后一页自动显示第一节共X页
和第二节共Y页
,无需手动计算和输入。只需在每节的最后一页页脚中插入相应的域代码,然后按F9
更新即可。
禁用win11更新
windows 11 会强制更新,这给需要稳定工作的人造成了麻烦,甚至是损失。一般情况下不允许永久关闭,所以本文介绍一个变通的方法,超长时间禁用更新以达到稳定使用系统的目标。
暂停更新
创建一个 txt
文件导入以下代码
1 | Windows Registry Editor Version 5.00 |
另存为 .reg 文件即可双击使用.
恢复更新
同理可以建立恢复默认,即
1 | Windows Registry Editor Version 5.00 |
另存为 .reg 文件即可双击使用.
参考文章
ArchLinux安装奔图P3370DN打印机驱动
问题描述
办公室配置的奔图P3370DN打印机,在其奔图官网驱动下载站点可以看到该打印机是有Linux驱动的,但是它是针对Debian系列的Linux设计的,在ArchLinux上就无法直接安装了。
解决方案
- 安装
system-config-printer
, 即运行命令
1 | sudo pacman -S system-config-printer |
在菜单中找到
打印机设置
→解锁
→添加
→网络打印机
.选择局域网内的打印机,此时默认会显示打印机的
IP
和端口
, 同时下方显示连接AppSocket/HP JetDirect
, 点击转发,然后等待搜索驱动.在上方选中
从数据库中选择打印机
,下方选中Generic(推荐)
, 然后点转发。进一步
选择驱动程序
→PostScript
, 然后在右侧显示驱动程序Generic PostScript Printer(推荐)
, 再点转发,设置成功。
注意
由于奔图打印机在github上没有公开驱动程序,所以使用paru也无法实现驱动安装,通过一系列测试,使用Linux系统的通用打印驱动即可实现完美打印。
Seewo电脑安装win10后显卡和芯片组驱动安装
问题描述
单位配置了国产电脑,牌子是 Seewo 的。但是其安装的系统是银河麒麟系统和win10家庭版,它们同时占据了一块512的固态硬盘,这给不经常使用Linux的用户造成麻烦,因此有必要将Linux去除,同时只安装LTSC版本的Win10. 但是我在安装完成LTSC版win10后,发现右键我的电脑后发现还有若干硬件出现黄色感叹号,也就是这些硬件没有被win10识别,同时由于缺失显卡驱动,也无法将分辨率调成1080p。本文给出解决方案。
解决方案
芯片硬件驱动
- 下载海光3350驱动HygonSoCDriver-1.0.3.msi.
- 双击安装.
- 参考文章:海光c86 3250 装的win10驱动打不上
显卡驱动
- 下载国产风华2号win10/win11驱动
- 解压缩文件到你的电脑
- 以管理员身份运行命令
pnputil.exe /add-driver innogpu.inf /install
- 你可以看到驱动立刻安装完成。
- 参考文章:国产显卡风华2号Windows10/11驱动
curlftpfs挂载ftp服务器时密码中含有特殊字符的解决方案
问题描述
因为 @ 符号在 FTP URL 中是一个保留字符,用于分隔认证信息(用户名:密码)和服务器地址。当你的密码中包含 @ 时,直接使用它会破坏 URL 的解析,导致登录失败。
解决方案:对密码进行 URL 编码
最可靠的方法是对密码中的特殊字符进行 URL 编码(Percent-encoding)。对于 @ 符号,其编码后的结果是 %40。
解决步骤
找到密码中的所有
@
符号。将它们逐个替换为
%40
。在 curlftpfs 命令中使用编码后的密码。
实例
1 | # 这个命令会解析错误,很可能认证失败 |
1 | # 将密码中的 ‘@’ 替换为 ‘%40’ |
Neovim中的lspconfig升级修复
2025-09-26 15:16
在更新ArchLinux
后,再打开Neovim
后提示
1 | The `require('lspconfig')` "framework" is deprecated, use vim.lsp.config (see :help lspconfig-nvim-0.11) instead. |
问题解读
你遇到的这个提示意味着你正在使用的 nvim-lspconfig
插件版本已经弃用了旧的配置方式,需要迁移到新的 Neovim
内置接口。新旧语法对照如下:
配置方面 | 旧语法(己弃用) | 新语法(Neovim 0.11+) |
---|---|---|
基本服务器配置 | require('lspconfig').pyright.setup({...}) | vim.lsp.config('pyright',{...}) |
启用服务器 | 在setup后自动或通过其他机制 | 调用vim.lsp.enable('server_name') |
通用配置(如按键映射) | 在单个服务器的setup的on_attach中定义 | 使用vim.api.nvim_create_autocmd监听"LspAttach"事件 |
迁移步骤与示例
更新Neovim和插件: 确保你的 Neovim 版本在 0.11.0 或以上,因为新的 vim.lsp.config API 是从这个版本开始引入的。同时,将你的 nvim-lspconfig 插件更新到最新版本。
重写配置语法:找到你配置文件中所有使用 require('lspconfig').XX.setup({...}) 的地方,将其改为新的格式。
迁移实例:
1 | -- 这是已弃用的旧写法 |
1 | -- 使用新的 API 进行配置 |
- 处理全局设置(如按键映射) : 在新的模式中,建议将通用的、不针对特定语言服务器的设置(如按键映射)通过全局的 LspAttach 自动命令来设置。这可以避免为每个服务器重复编写 on_attach 函数。
1 | -- 定义一个通用的附加回调函数 |
验证与排查
完成修改后,你可以通过以下方式验证配置是否正确:
重新加载你的配置文件(例如执行 :source $MYVIMRC)。
打开一个相关类型的文件(如 .lua 文件),使用 :LspInfo 命令查看对应的语言服务器(如 lua_ls)是否正常启动。
如果服务器没有启动,检查 Neovim 的 :messages 或 LSP 日志(通过 :LspLog)来排查错误。
后出师表
先帝深虑汉、贼不两立,王业不偏安,故托臣以讨贼也。以先帝之明,量臣之才,固知臣伐贼,才弱敌强也。然不伐贼,王业亦亡。惟坐而待亡,孰与伐之?是故托臣而弗疑也。
臣受命之日,寝不安席,食不甘味。思惟北征。宜先入南。故五月渡泸,深入不毛,并日而食;臣非不自惜也,顾王业不可得偏安于蜀都,故冒危难,以奉先帝之遗意也,而议者谓为非计。今贼适疲于西,又务于东,兵法乘劳,此进趋之时也。谨陈其事如左:
高帝明并日月,谋臣渊深,然涉险被创,危然后安。今陛下未及高帝,谋臣不如良、平,而欲以长策取胜,坐定天下,此臣之未解一也。
刘繇、王朗各据州郡,论安言计,动引圣人,群疑满腹,众难塞胸,今岁不战,明年不征,使孙策坐大,遂并江东,此臣之未解二也。
曹操智计,殊绝于人,其用兵也,仿佛孙、吴,然困于南阳,险于乌巢,危于祁连,逼于黎阳,几败北山,殆死潼关,然后伪定一时耳。况臣才弱,而欲以不危而定之,此臣之未解三也。
曹操五攻昌霸不下,四越巢湖不成,任用李服而李服图之,委任夏侯而夏侯败亡,先帝每称操为能,犹有此失,况臣驽下,何能必胜?此臣之未解四也。
自臣到汉中,中间期年耳,然丧赵云、阳群、马玉、阎芝、丁立、白寿、刘郃、邓铜等及曲长、屯将七十余人,突将、无前、賨叟、青羌、散骑、武骑一千余人。此皆数十年之内所纠合四方之精锐,非一州之所有;若复数年,则损三分之二也,当何以图敌?此臣之未解五也。
今民穷兵疲,而事不可息;事不可息,则住与行劳费正等。而不及今图之,欲以一州之地,与贼持久,此臣之未解六也。
夫难平者,事也。昔先帝败军于楚,当此时,曹操拊手,谓天下已定。然后先帝东连吴越,西取巴蜀,举兵北征,夏侯授首,此操之失计,而汉事将成也。然后吴更违盟,关羽毁败,秭归蹉跌,曹丕称帝。凡事如是,难可逆见。臣鞠躬尽瘁,死而后已。至于成败利钝,非臣之明所能逆睹也。
Shell脚本变量与函数变量
在 shell 脚本中使用$1
, $2
等表示变量,它们不仅可以表示脚本的参数,也可以表示函数的参数。但是,如果一个函数它自己有参变量,同时又需要引用脚本的参变量,那这个函数就无法识别$1
是脚本的还是函数的,这会导致矛盾。为了解决函数参数覆盖脚本参数的问题,一个简单安全的方法是提前保存脚本参数,即
1 | #!/bin/bash |
此法能确保在函数中正确访问脚本参数,同时保持代码清晰和可维护性。
这里需要注意变量$0
和$?
不会被函数参数覆盖,这里将各变量列表如下:
变量 | 是否被函数参数覆盖 | 作用域 | 说明 |
---|---|---|---|
$0 |
否 | 全局 | 始终表示脚本名称 |
$? |
否 | 动态更新 | 始终表示上一个命令的退出状态 |
$1-$9 |
是 | 函数内局部 | 在函数内被函数参数覆盖 |
$# |
是 | 函数内局部 | 在函数内表示函数参数个数 |
$@ |
是 | 函数内局部 | 在函数内表示函数参数列表 |
所以综合考虑,将$0
也在脚本开头保存,以便规范使用。于是前面的脚本可以进一步写为:
1 | #!/bin/bash |
Shell脚本获取终端尺寸
在编写 shell
脚本时经常使用的函数可以封闭到一个脚本中,然后其他脚本使用 source
命令直接调用即可,这样不仅有利于新脚本的开发,更有利于维护。但是今天在编写新的脚本
chaos.sh
时调用了我之前在diary.sh
中调用过的菜单脚本,然而却出现错误。一直提示"
stty: 标准输入: 对设备不适当的 ioctl 操作" 。
造成这个问题的原因是:使用 Neovim
内置命令运行脚本时并没有真正在一个终端中运行,而菜单脚本使用tty
获取终端的尺寸,此时没有可用的tty
,
因此出现报错。
一个更健壮的获取终端尺寸的方法(在非终端环境下,如 Neovim
:!sh ./chaos.sh
等也不会报错),是使用tput
,
这是一具兼容度最好的方案。具体原因是
tput
会尝试从环境变量或terminfo
中获取尺寸- 在非终端环境下返回空或错误,可用
||
提供默认值 - 不会像
stty size
那样报错
一般情况下,使用stty size
与
tput
会获得相同的结果,为了确保与之前脚本的兼容性,修改获取尺寸函数为:
1 | # 列表程序 |
通过[ -t 0 ]
来判断运行程序时是否在终端,若在终端仍然使用stty size
获取终端尺寸,否则使用tput
获取。这样重新定义获取尺寸函数后,问题彻底解决。