书签多选:一次删掉或导出十几条
上个月下线的集群,十二条书签还躺在某个分类里,你每次滚动都要路过它。或者反过来:换了新笔记本,三百条书签里你只想要二十条——不是全部三百条,也不是手工从备份文件里挑。这两件事其实是同一件事:对一组书签操作。一条一条来,前者是十二次右键,后者是手改 JSON。
设置 → 书签 里有一个专门做这件事的第二种模式。树会变成清单,你勾中的东西可以一次删掉,也可以一次导出。
开关在哪
打开设置面板,选 书签 标签页。树的上面有一排图标按钮:
[书签+] [分类+] [铅笔] [导出] [导入] [代码] ☰
要的是铅笔那个。点下去,树就换成了选择器:还是那些分类、那些书签,但每一行前面多了一个复选框,上面一个搜索框,下面三个按钮。
左侧栏里的书签面板不是这个:它是用来开会话的,行上悬停出现的小图标一次只能改一条或删一条。批量界面放在同时装着书签表单的那个标签页里,因为那里是"管理书签"而不是"使用书签"的地方。
带复选框的树
分类和书签都有复选框。书签保留和列表里一样的颜色圆点和 标题 - 用户名@主机:端口,所以选择器看起来就是你熟悉的那个东西,只是前面多了一个方框。
动手之前有两件事值得知道:
勾一个分类会勾选它里面的全部内容。 勾上 prod,prod 本身、它下面每一条书签和每一个子分类都会被选中——分类复选框存在的意义就是这个。再把其中一条书签取消勾选,这个分类会变成半选状态,而不是保持全选。
搜索会把树裁到"还包含匹配项"的分支上,并自动展开这些分支。 输入 redis,你会看到装着 redis-cache 的那个分类,匹配项就摆在里面;清空输入框,你自己原本的展开状态会回来。
两个按钮,两个数字
按钮上带数字,而这两个数字并不总是相同:
| 按钮 | 数字算的是 | 作用对象 |
|---|---|---|
| 删除选中 (N) | 每一个勾选的行——分类和书签 | 把这些行删掉 |
| 导出 (N) | 只有勾选的书签 | 把这些书签写成一个 JSON 数组 |
这个差异不是圆整问题,它是数据本身决定的。勾选一个装着两条书签的分类,分类自己的框也会被勾上,于是删除的数字读作 3——分类也是你选中的一行,删掉它是一个真实操作。而分类不是书签,进不了文件:导出的数字读作 2。
在两个不同分类里各勾一条书签(横幅动画里就是这么做的),两个按钮就都读作 (2)。
删除选中
点下去,勾选的行就没了。没有二次确认,没有撤销——它和行菜单里的删除是同一个 store 操作,只是作用在一个集合上而不是一个条目。代价有三个:
- 勾中的分类会连同内容一起消失。 因为勾分类会勾上它的子项,对
prod执行删除,会同时删掉分类和里面每一条书签。这和从行的悬停菜单里删分类不一样:后者会把书签和子分类上移到父级。整条分支真的不要了,用批量删除;只是想解散这个文件夹,用行菜单。 default会保留。 它是每个安装都有的分类,所以被排除在删除集合之外。它里面被勾选的书签照删。- 你留在选择器里,勾选清空、树变短,可以接着干。要离开请点"取消"。
导出选中
导出 (N) 写出的是一个纯 JSON 数组,里面是选中书签的对象——不是工具栏那个完整备份导出的 { bookmarkGroups, bookmarks } 对象:
[
{
"id": "9f3c1a7e-4b2d-4f18-9a55-0d6c1f8b7e21",
"title": "prod-web",
"host": "10.0.4.21",
"port": 22,
"username": "deploy",
"authType": "privateKey",
"privateKeyPath": "~/.ssh/id_ed25519"
},
{
"id": "2b7d9c04-6e51-4a8c-bb0e-73f4c2a91d55",
"title": "db-primary",
"host": "10.0.4.8",
"port": 22,
"username": "deploy"
}
]
每条书签的所有字段都会跟着走——密码或密钥路径、隧道、快捷命令、终端主题、颜色、描述——因为这些对象是原样从 store 里拷出来的,没有被裁剪成更小的形状。
文件名是 bookmarks-YYYY-MM-DD-HH-mm-ss.json,落在保存对话框里你选的那个文件夹;对话框会默认打开你上次用过的目录。之后会弹出应用一贯的导出通知:路径、一个"在文件夹中显示"的入口,以及那句固定的提醒——导出的文件是纯文本,可能包含密码和私钥等敏感数据,请妥善保管。
导出不会清空勾选。 复选框仍然勾着,你也还在编辑模式里,所以"导出这几条,然后删掉这几条"是一趟而不是两趟。
这个文件能导回来
导入(铅笔旁边那个箭头图标)两种形状都认。完整备份会恢复分类和书签;像上面这样的纯数组会变成一个名为 imported_<时间戳> 的新分类,里面正好是这些书签。
id 会被保留,重复的直接跳过,所以同一个文件导第二次不会产生任何副本——第二趟会发现每个 id 都已经在 store 里,什么都不加。这也让这个数组适合当作团队共享主机的一份种子:导出、把文件发出去,对方导入后得到一个整齐的分类,再把行拖到真正的分类里。
三个会咬人的细节
hide IP 只遮住列表,不遮文件。 开着 hide IP 时,选择器显示 deploy@10.*.*:22,这才让截图可以贴进工单。导出的 JSON 里主机地址始终是真的。
勾中的分类会连同内容一起被删——见上面那节。这是整套批量操作里唯一一处比逐行删除更狠的地方。
导出只在编辑模式里。 普通树里没有这个按钮,工具栏的菜单里也没有;入口就是那支铅笔。"取消"和点在选择器外面都会原样退出,什么都不改。
一套顺手的流程
搬迁这件事,从头到尾:
- 设置 → 书签 → 铅笔。
- 搜项目名,勾上要的书签(想整片带走就勾它上面的分类)。
导出 (N),选个文件夹,结束——你手上是一个任何编辑器都能打开的数组。- 到新机器上导入这个文件,把行从
imported_<时间戳>拖进真正的分类,删掉这个壳。
清理那件事是同样三步,只是把导出换成"删除选中"——如果那条分支是一个已经下线的集群,勾上它的分类再删,就是"从我的列表里消失"最诚实的做法。
试试
三条书签、十秒钟就够。打开书签标签页,点铅笔,勾一个分类,看整棵子树跟着填满——删除选中 上的数字会告诉你即将消失的到底有多少。然后把勾全取消、点"取消";在你按下那两个按钮之一以前,什么都还没写。
