匿名书签通过f11快速切换当前行标记,ctrl+shift+f11顺序跳转;命名书签需ctrl+shift+f11命名后用shift+f11全局检索跳转;todo注释依赖正则匹配和索引,与书签机制完全不同。

怎么用匿名书签在单个文件里快速跳转
匿名书签是最快上手的定位方式,适合临时标记几处关键行,比如刚读完的入口函数、刚改完的配置块、或者正在调试的断点附近。它不命名、不跨文件、不进列表,但按一次就生效,再按一次就取消。
-
F11(Windows/Linux)或Cmd + F11(macOS)直接切换当前行的书签状态,左侧标记栏出现蓝色小书本图标即成功 - 按
Ctrl + Shift + F11(Win/Linux)或Cmd + Shift + F11(macOS)可在当前文件内顺序跳转所有匿名书签——注意:它不分命名/匿名,只按行号从上到下扫一遍 - 删了那行代码,书签自动消失;关掉文件再打开,书签还在;但换台电脑或重装 IDE,它不会同步——因为它只存在本地
.idea/workspace.xml里 - 常见错误:光标停在空行或注释行上按
F11,结果跳转时发现“没反应”,其实是跳过去了,只是那行没内容,视觉上不明显;建议跳转后按Home或End确认光标位置
怎么建带名字的书签并跨文件跳转
命名书签才是真正能支撑中大型项目导航的工具,尤其当你需要在 AuthController.php、config/app.php、database/migrations/ 之间频繁切换时。它靠名字检索,支持模糊匹配,且能出现在 Shift + F11 全局列表里。
- 先定位到目标行,然后按
Ctrl + Shift + F11(Win/Linux)或Cmd + Shift + F11(macOS),输入纯字母/数字/下划线组成的简短名,比如auth_middleware或db_seed_init - 名字别带空格或特殊符号,否则 IDE 可能截断或报错;也不要用太泛的词如
fix或todo,容易在多文件中重复,导致Shift + F11列表里一堆同名项分不清 -
Shift + F11打开列表后,直接输前几个字母就能过滤,比如输auth就列出所有含该前缀的命名书签;回车即跳转,右窗格还会预览那行上下文 - 命名书签删除只能通过列表操作:打开
Shift + F11→ 右键目标项 →Remove Bookmark;不能靠快捷键一键清除,这点和匿名书签不同
TODO 注释为什么没出现在 Alt+6 窗口里
TODO 不是书签,它是基于正则扫描的注释聚合机制,不依赖手动标记,但极度依赖格式和索引状态。很多开发者写了 // TODO 却看不到,不是功能坏了,而是匹配条件没满足。
- 默认只识别
// TODO、// FIXME、// XXX这三种开头(注意冒号后必须有空格,// TODO:不匹配) - 多行注释
/* TODO ... */默认不触发;小写// todo也不会被扫到,除非你在Settings > Editor > TODO里勾选Case insensitive -
Alt + 6(macOS 是Cmd + 6)打开的窗口是静态快照,不是实时搜索。改了注释后没立刻出现?先关掉再重开一次窗口,强制触发重新索引 - 如果项目用了
vendor或node_modules,检查右上角漏斗图标里的Show TODOs from non-project files是否关闭——关了就只扫你自己的代码目录
书签和 TODO 根本不是一回事,别混着用
这是最容易长期误用的一点:有人把书签当 TODO 用(比如给一行 // TODO 加个书签),也有人把 TODO 当书签用(指望靠搜 TODO 跳转到某段逻辑)。它们底层机制、生命周期、适用场景全都不一样。
- 书签是「位置锚点」:绑定具体某一行,删了那行,书签自动消失;它不关心内容,哪怕那行是
$x = 1;,只要你想反复看,就能打书签 - TODO 是「语义线索」:靠正则匹配注释文本,不绑定物理行号;你把
// TODO剪切粘贴到另一行,它照样被扫出来;但删掉这行注释,下次索引就没了 - 书签随 IDE 配置存本地,不进 Git;TODO 注释是代码一部分,天然可协作、可审查、可追踪变更历史
- 真正难的是边界感:比如一个待办事项已明确要改某函数,那就用
// TODO refactor loginCheck()+ 提交;如果只是临时想回头再看看这个 if 分支怎么写的,就打个匿名书签——别让 TODO 列表变成“未读消息堆”,也别让书签列表变成“废弃锚点坟场”
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










