ctrl+shift+l只出一个光标是因为它仅按选区中实际存在的换行符(\n或\r\n)切片,若未选中换行符(如拖选未覆盖行尾、未选中任何文本或含缩进空格),即视为单行处理;安全做法是先用ctrl+l逐行选中再执行。

Ctrl+Shift+L 拆光标总只出一个?先看选区里有没有换行符
这个命令不是“给当前光标所在行加光标”,而是把已选中的文本按 \n 或 \r\n 切片,每片末尾放一个光标。它完全不关心你“想选几行”,只认你选区里是否真有换行符。
- 鼠标拖选时最后一行没覆盖到换行符(松手早了),就当单行处理,只出一个光标
- 只点了一下光标、没选中任何文本,
Ctrl+Shift+L静默跳过,毫无反应 - 选区含缩进空格或制表符,光标就停在那,一输内容就把缩进顶掉
- 安全做法:先用
Ctrl+L(Windows/Linux)或Cmd+L(macOS)逐行选中目标行,再统一按Ctrl+Shift+L,100% 按行生效 - 想统一加前缀(如
//)?别直接按Ctrl+Shift+L,先按Home把所有光标拉到行首;想加后缀(如;)?按End再输
Ctrl+D 总跳过目标词?它只认完整单词边界和大小写
Ctrl+D 不是模糊搜索,而是从当前光标位置出发,严格匹配“完整单词”——即被空白、标点、括号等包围的连续字符序列,且区分大小写和下划线。
- 双击选中
user_id后连按Ctrl+D,会跳过user_id_list(多了_list)、USER_ID(大小写不符)、user_id,(逗号算边界) - 光标停在
username_input中间,可能只取到name_input,后续全错 - 想跳过某个干扰项:按住
Ctrl+K不松,再按Ctrl+D,当前高亮消失,光标保留在原位 - 一次性全选?别反复按
Ctrl+D,改用Ctrl+Shift+G(注意不是Ctrl+G) - 需要子串匹配(比如在
username_input里也命中user)?先关掉match_whole_word,或手动双击选中user再按Ctrl+D
Alt+Shift+拖拽列选失败?不是快捷键问题,是触发条件没满足
列选择不是“按住 Alt 就能拖”,而是必须组合 Alt+Shift(Windows/Linux)或 Option+Shift(macOS)+ 鼠标拖动,且依赖等宽字体与软换行关闭。
- 某行对应列为空格或制表符,Sublime 会自动把光标移到该行行尾——这是正常行为,不是 bug
- 视觉错位?大概率是字体非等宽(如系统默认 UI 字体),换成
Consolas或Fira Code立刻稳定 - 软换行(
Word Wrap)开启时,逻辑列被拆成多行,点偏是常态;临时关闭View → Word Wrap更准 - 列选状态下不能用
Ctrl+D、Ctrl+U或方向键扩展光标——必须先按Esc退出,才能切回多光标流程 - 文件是只读状态?列编辑静默失败,状态栏右下角显示
read only,需先解除锁定
为什么 Ctrl+Click 加光标没反应?检查 drag_text 是否为 false
默认开启的 drag_text 会让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)优先触发文本拖动,而不是添加光标——这是最常被忽略的配置项。
- 必须手动关掉:打开
Preferences → Settings,在用户设置里加一行:"drag_text": false - 点没反应?确认是否点了单词中间(易触发双击选词)或选区边缘(易进入列选择);优先点行首、行尾或空格处
- MacBook 触摸板三指拖拽手势可能误触发;外接鼠标或禁用该手势更稳
- 列选择和
Ctrl+Click底层机制完全不同,不能混用,也不能在列选状态下继续用Ctrl+D或Ctrl+Shift+L
多光标不是模式,是实时叠加的瞬时状态——按错一次方向键、不小心碰到 Esc、甚至输入法切换延迟,都可能导致光标全部消失。真正卡住的地方,往往不在快捷键记不记得住,而在选区是否干净、缩进是否统一、drag_text 是否关掉、以及你有没有意识到 Sublime 的所有多光标操作,本质上都是对「当前选区」或「当前光标位置」的一次性快照解析。











