# Changelog: 文件管理器复制粘贴、编辑器外观与 sudo 自动配置

**日期**: 2026-06-02  
**类别**: 功能改进 + Bug 修复

## 变更摘要

### 1. 文件管理器复制粘贴逻辑修复
- `Ctrl+C` / `Ctrl+X` 仅在有勾选文件时拦截浏览器默认行为并执行复制/剪切；无勾选时让浏览器原生复制正常工作
- `Ctrl+V` 仅在剪贴板有内容时执行粘贴，空剪贴板不触发

### 2. 文件编辑器大小限制提升至 2MB
- `FILE_EDITOR_MAX_BYTES` 新增为 2MB（原 300KB 仅用于预加载）
- 编辑/查看文件 >300KB 时显示"正在加载…"提示
- 错误提示文案更新为"文件超过 2MB"

### 3. 非 root 用户一键配置 sudo 权限
- 后端新增 `POST /servers/{id}/setup-files-sudo` 端点
- 使用服务器已存储的 SSH 密码，通过 `sudo -S` 自动写入 `/etc/sudoers.d/nexus-files`
- 前端：权限提示横幅（非 root 服务器）增加「一键配置 sudo 权限」按钮
- 成功后自动刷新权限探测并重新浏览目录

### 4. 编辑器外观全面改进
- **工具栏重构**：移除 `v-toolbar`，改用 flexbox 布局，解决语言选择器位置错乱问题
- **语法选择器**：改为 `variant="plain"` 更轻量，宽度从 132px 调整至 110px
- **状态栏**：背景改为主题色（蓝色），跟随 Vuetify 主题，不再硬编码 `#252526`；显示行:列、语言、路径、"未保存"提示
- **自动换行**：工具栏新增换行切换按钮（`mdi-wrap` / `mdi-wrap-disabled`），支持 Alt+Z 快捷键
- **文件标签**：未保存标记从 `text-error` 改为 `text-warning`，更柔和
- **全屏/Esc 提示**：全屏按钮 title 补充"(Esc)"说明

## 涉及文件
- `frontend/src/composables/useFilesHotkeys.ts` — 复制粘贴快捷键守卫
- `frontend/src/utils/filePreload.ts` — 新增 `FILE_EDITOR_MAX_BYTES`
- `frontend/src/pages/FilesPage.vue` — 大文件加载提示、sudoers 一键配置、剪贴板守卫
- `frontend/src/components/FileEditorWorkbench.vue` — 编辑器外观全面改进
- `server/api/servers.py` — 新增 `setup-files-sudo` 端点

## 验证方式
1. 文件管理器无勾选时 Ctrl+C 不弹出"已复制 N 项" snackbar
2. 无剪贴板时 Ctrl+V 无反应
3. 编辑 300KB～2MB 文件时显示"正在加载…"蓝色提示
4. 非 root 服务器权限横幅出现「一键配置 sudo 权限」按钮
5. 编辑器工具栏语言选择器正常显示，状态栏为蓝色主题
6. Alt+Z 切换换行，状态栏出现"换行"标记

## 是否需要迁移/重启
- 后端需重启（新增 API 端点）：✅ 已执行
- 数据库无变更
