# CudaText 插件:“磁盘获胜”(外部更改时强制自动重新加载) CudaText 没有内置选项可以在文件加载时以静默方式重新加载文件 磁盘上的更改 - 每个内置的“磁盘上更改”模式仍然显示一些 重新加载之前的提示类型(模态或无模态) (参见“default.json”中的“ui_notif_confirm”,值“0”-“4”,所有这些 问)。这个插件弥补了这一差距:**磁盘总是获胜**,永远没有提示。 存档于此处,因此无需为此重新派生 CudaText 插件 API 再次。插件本身的真实来源位于 [`cuda_disk_wins/`](.././cuda_disk_wins/) 在此文件夹中。 ## 它的作用 - 每秒轮询每个打开的命名文件一次(可通过配置 “__init__.py”中的“TIMER_INTERVAL”)。 - 如果磁盘上文件的 mtime 发生变化,插件会重新读取它并调用 `Editor.set_text_all()` — **覆盖任何未保存的更改 编辑器选项卡,无需询问**。 - 之后清除“已修改”标志(`PROP_MODIFIED = False`),因此 选项卡看起来很干净,好像没有任何分歧。 - 尽力恢复插入符号位置和顶部可见线 重新加载。 - 在“插件→磁盘胜利”下添加两个命令: - `打开/关闭自动重新加载` -“立即检查”(手动一次性检查) ## 为什么是插件而不是设置 CudaText 自己的文件观察器(`ui_notif`)仅提供“询问”行为: | `ui_notif_confirm` |行为 | |--------------------------------|--------------------------------------------------------| | 0 |无模式提示,始终 | | 1 |如果编辑器已修改或撤消不为空,则无模式提示 | | 2 |如果编辑器已修改,则无模式提示 | | 3 |模态提示,始终 | | 4 |模式提示,如果编辑器已修改 | 没有值表示“自动重新加载,无提示,继续”。 因此,这个小插件运行自己的轮询循环并重新加载 直接通过Python API。 ## 安装 __代码_块_0__ 重新启动 CudaText。 **重要:**还要禁用 CudaText 自己的更改通知对话框,以便 它不会与插件冲突。在 `~/.config/cudatext/settings/user.json`: __代码_块_1__ (相当于UI中的“选项→设置-用户配置”。)重新启动 进行此更改后再次使用 CudaText。 ## 注意事项 - 这是故意破坏性的:未保存的编辑器编辑被丢弃 文件在外部发生更改时会默默地进行。这就是整个 插件的重点 - 如果您有时想保留,请不要安装它 对外部更改进行本地编辑。 - 只对文件的修改时间做出反应;在编辑器中输入 不触发重新加载(无反馈循环)。 - 如果文件被外部删除,则插件不会执行任何操作,直到它被删除 重新出现(没有崩溃,没有重复的重新加载尝试)。 - 编码通过`PROP_ENC`读取并映射到最近的Python编解码器; 如果您尚未使用编码,请扩展“__init__.py”中的“ENC_MAP” 列出。 ## 起源 专为“总是喜欢文件系统更改而不是未保存的编辑器”而构建 设置 CudaText 时讨论的缓冲区,无需确认”要求 通过 Arch 上的 `yay -S cudatext-qt6-bin python`。