sublime
# selection
在 macOS 上, Sublime Text 提供了多种选择文本的方式, 其中包括块状选择。下面是一些在 Sublime Text 中选择文本的常见方式:
基本选择:
- 单词选择: 双击单词即可选择整个单词
- 行选择: 点击行号区域, 选中整行
- 段落选择: 连续按两次 Ctrl(或 Command)键, 并单击鼠标, 即可选择整个段落
块状选择(多光标选择):
- 垂直选择: 按住 Option(或 Alt)键, 并使用鼠标拖动, 可进行垂直方向上的选择。这样可以创建多个光标, 使得你可以同时编辑多个位置的文本
- 列选择: 按住
Shift + Option(或Shift + Alt)键, 并使用鼠标拖动, 可进行块状选择。这种选择方式可用于选择多行中相同列位置的文本, 非常适用于进行批量编辑
快速选择:
- 多重选择: 按住 Ctrl(或 Command)键, 并单击想要选择的文本, 可以进行多重选择
- 选择相同内容: 选中文本后, 按下快捷键 Ctrl + D, Sublime Text 将自动选择下一个相同的内容。可以多次按下该快捷键以选择所有相同内容
- 选择括号内容: 将光标放在括号上, 按下快捷键 Ctrl + Shift + M, Sublime Text 将选择括号内的内容。可以多次按下该快捷键以逐级选择外层的括号
正则表达式选择:
- 按下快捷键 Ctrl + F(或 Command + F), 在查找框中输入正则表达式, 然后按下快捷键 Alt + Enter(或 Option + Enter), Sublime Text 将会选择所有与正则表达式匹配的文本
这些选择方式可以帮助你在 Sublime Text 中高效地选择和编辑文本。通过灵活运用这些技巧, 你可以快速准确地选择并修改所需的文本内容
# 批量插入
【背景】在每一行前添加字符#, 下面的图片是需求背景

一、操作步骤
- 首先使用款选择器, 按住 alt 键, 选择区域,如下

- 按下
Shift + Command + L快捷键, 或者在菜单栏选择 Selection -> Split into Lines。这将把每个多重光标限制在每一行的开头 - 在键盘上按下
#键。这将在每个多重光标所在行的开头插入#
二、总结:
本质上, 上面的方式使用了, 多重光标(Multiple Cursors)的功能来在每一行的开头添加 #
# plugin
Package Control 是 Sublime Text 插件包管理器。 简单的说,也就是 sublime Text 只有安装了 Package control 组件,后期才能安装各种不同的插件
# 安装 Package Control 组件
- Click the
Preferences > Browse Packages…menu - Browse up a folder and then into the
Installed Packages/folder (浏览上一级文件夹) - Download Package Control.sublime-package and copy it into the
Installed Packages/directory - Restart Sublime Text
# Installation Options
- 手动方式: 下载完整的插件包后解压,放入 Packages 目录下,以达到安装插件的目的
# HexViewer
HexViewer (opens new window), 二进制查看. HexViewer 显示的是文件的字节序列,而不是涉及大小端序的问题
采取手动安装。 git clone -b <tag> <url> to packages fold。 使用上,使用 command+shfit+p, 键入 'Toggle Hexer View'
# other
# macOS 命令行超时排查
GUI 仍能编辑和保存,但 subl . 报错时,可以把“命令入口是否正确”和“运行实例的 IPC 是否可达”分开检查。典型报错如下,单凭这条信息不能确定是临时目录清理:官方问题记录中也出现过 App Translocation 导致的相似故障,见 Sublime Text issue #3233 (opens new window)。
Timeout waiting for detached instance to start
先排除 alias、PATH 和应用位置问题
| 命令 | 用途 |
|---|---|
type -a subl | 同时查看 alias、函数和可执行文件入口,不只依赖 which |
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" --version | 核对应用包内 CLI;应用装在其他位置时调整路径 |
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" . | 绕过 alias,验证打开目录能否成功 |
若 --version 成功而打开目录失败,只能说明 CLI 能启动,不能据此判断 IPC 正常。应用包内入口与参数以 官方 CLI 文档 (opens new window)为准。
核对进程与 socket 路径
用 pgrep -fl 'Sublime Text' 找到候选进程,再确认应用主进程,排除插件宿主和临时启动的 CLI。下面的 PID 和示例 socket 路径必须替换为实际值:
ps -p PID -o pid=,state=,etime=,comm=
lsof -nP -a -p PID -U
ls -ld '/tmp/Sublime Text.EXAMPLE.sock'
2
3
Sublime 的 socket 位置和名称应从实际进程确认,不要硬编码散列值。若进程的 socket 记录仍在,而对应路径已不存在,新客户端可能无法找到原实例;GUI 正常也不能证明 IPC 入口正常。这个证据说明路径当前缺失,不能证明是谁删除了它,也不足以确认客户端内部的启动流程。
恢复与验证
先保存文件,通过应用菜单正常退出 Sublime Text,等待主进程结束后重新打开,再用官方 CLI 验证:
open -a "Sublime Text"
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" .
2
窗口和未保存内容能否恢复取决于会话设置及状态是否已保存;hot_exit 与 workspace 不能替代主动保存,参见 设置说明 (opens new window)和 项目与 workspace (opens new window)。不要套用 tmux 的 SIGUSR1 恢复方式,也不要批量终止进程或清空 /tmp。tmux 有独立的 socket 重建机制,见 tmux 连接恢复。
临时目录清理:核实规则后再归因
Apple DTS 的 临时目录说明 (opens new window)提到过旧版 BSD 维护任务的三天默认值,也明确指出实现细节会随版本和平台变化,不能把它当成所有 macOS 的固定规则。排查时可按文件是否存在,查看对应入口:
| 入口 | 检查内容 |
|---|---|
/etc/periodic/daily/110.clean-tmps、/etc/defaults/periodic.conf | 使用旧版 periodic 机制时的脚本与配置 |
/System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist、/usr/libexec/tmp_cleaner | 使用该机制时的调度与程序;先用 file 判断程序类型 |
还要看清理规则匹配的文件类型:find -type f 只匹配普通文件,不会直接匹配 Unix socket(-type s);同时核对是否存在递归删除目录的规则及其他清理工具。文件类型语义见 find 手册 (opens new window)。不要把“隔几天运行一次 subl 会刷新 atime”当成可靠预防方案,也不要通过关闭系统清理来掩盖尚未确定的原因。