接手一个老项目,日志里打出一句 order sync failed,想找是哪行代码打的,Ctrl+F 只在当前文件里转。idea全局搜索用的是 Ctrl+Shift+F,在整条项目里找文字,几秒钟就定位到文件。

Ctrl+Shift+F 全项目找文字

按 Ctrl+Shift+F 打开 Find in Path,输入关键字回车,下面列出所有文件和行号,点一下直接跳到对应位置。结果面板里能预览上下文,双击行号直接跳到编辑器,不用一个个文件翻。默认范围是整个项目,可以在 Scope 里改成当前模块或者自定义目录。File mask 填 *.java 只搜 Java 文件,填 *.xml 只找配置。勾上 Regex 能写正则,比如 order.*failed,匹配范围别开太大,大项目会搜很久。

找类、文件、符号用另外三个键

Ctrl+N 按类名找 Java 类,Ctrl+Shift+N 找文件,Ctrl+Shift+Alt+N 找方法或变量名。这几个比全文搜索快,前提是记得名字。双击 Shift 是 Search Everywhere,类、文件、符号、设置项、动作都能搜,忘了快捷键时很好用。找接口的实现类,在接口名上按 Ctrl+Alt+B 直接跳过去,比全局搜接口名再逐个点快。多模块项目先选目录再搜,Scope 里能省不少时间。

搜不到时先查范围,再查索引

明明有这个词却搜不到,先看 Scope 是不是选窄了,再看 File mask 有没有限制,大小写匹配有没有勾上。项目刚导入、索引没建完时结果也不全,右下角会有进度条,等它跑完再搜。索引坏了就点 File → Invalidate Caches,选 Invalidate and Restart,重启后重新建索引,大项目要等几分钟。索引期间别反复搜索,越搜越卡。

日常找文字用 Ctrl+Shift+F,找结构用 Ctrl+N 和 Ctrl+Shift+Alt+N,两个习惯配合,基本不用再翻目录。idea全局搜索的快捷键记不住就双击 Shift,输入动作名也能找到对应菜单。快捷键用顺手以后,换机器第一件事就是确认键位没冲突。