请教大家代码阅读和调试的技巧

2023-11-28 11:23:15 +08:00
 fengsi
我在用 IDEA 写一些 java 的代码,有时候会遇到一个方法里面包含几个子方法,我想仔细看看几个子方法(这些方法都在一个文件中),一般都是用 cmd+鼠标左键去查看,看完了想再回到父方法,或者去看其他子方法,我都是鼠标滚动着去找,找到了再看,有时候需要频繁查看几个子方法,就需要不断的滚来滚去,效率很低,请教大家平时遇到这种情况是怎么做的,IDEA 有什么插件能帮助到我吗?

其实在写代码的时候也有这些问题,一个方法中的实现被抽离成几个子方法,然后一个文件中的代码篇幅会显得很长,无论是想找什么代码,滚来滚去很不方便
3951 次点击
所在节点    程序员
35 条回复
kidlj
2023-11-28 17:49:32 +08:00
VSCode + VIM 插件

跳转到定义:ctrl + ]
跳回上一个位置:ctrl + o
跳到下一个位置:ctrl + i

以上是标准快捷键。又自己定义了几个:

ctrl + . (适用于 interface 类型,如果一个接口有多个实现,这个命令会列出所有实现)

当然阅读代码时最好用的是右键菜单:Find All References ,用于查看一个函数/变量/类型的所有被引用的地方。
chitanda
2023-11-28 18:11:40 +08:00
左侧栏有个 structure ,会显示该文件下所有方法
HarryQu
2023-11-28 19:30:40 +08:00
midstream
2023-11-28 19:37:53 +08:00
侧键好用
swaggeek
2023-11-28 20:15:19 +08:00
ctrl + alt + 左右箭头 可以跳回上一个光标和下一个光标
jones2000
2023-11-28 21:24:24 +08:00
1 个文件,多开, 每个屏方一个对应函数的位置,然后慢慢阅读。
zhdi
2023-11-29 00:41:21 +08:00
参考 vim 的 mark ,使用的灵活度,自由度,效率远远比只能在几个定义位置跳转强
Rehtt
2023-11-29 08:41:16 +08:00
用的 nvim+nvimdots ,跳转函数用 gd ,返回按 ctrl+o ,m(A-Z)添加全局书签,m(a-z)添加局部书签,'(A-Z a-z)跳转书签,][跳转下一个函数,]]跳转上一个函数
fengsi
2023-11-29 10:09:36 +08:00
@chitanda 我一开始便是这样用的,后来方法越来越多,structure 那里就拖得很长,也不好找了
iceAD
2023-11-29 10:39:02 +08:00
JetBrains 的 IdeaVim 快捷
常用:
gd:等效于 f12,当位于声明处时会查出所有的引用,go to define
K:查看光标下字段的声明(Linux 下多数情况会跳到对应的 man 手册)
m:Mark 标记,用于打书签,个人用的少,老是记不住,而且有的 IDE 支持的不是很好,跨文件的大写标记有的 IDE 识别不了。
Ctrl+o:等效于 VS 的往后跳转,等效于鼠标侧键默认的往后。
Ctrl+i:等效于 VS 的往前跳转,等效于鼠标侧键默认的往前。
一般常用:
zz:将当前光标所处位置挪动到视图窗口的正中央,代替鼠标滚轮。
zt or zb:也是代替鼠标滚轮,一个的 top ,一个是 bottom 。
zc:收起光标处代码折叠,得看 IDE 支不支持。
zo:打开光标处代码折叠。

以上大部分支持 VIM 插件的 IDE 都能用。
但看类的组织一般还是看类视图。
JetBranis 里面是:
Alt+\ 或者 Ctrl+ Alt + T

(有一说一,Rider 是真好用,让我告别了 VS 的烂番茄)
PainAndLove
2023-11-29 11:58:46 +08:00
@AlvaMu 好像有个 diagram
diagram structrue Hierarchy 这 3 个感觉都是差不多的功能
Vintingb
2023-11-29 12:51:44 +08:00
vim c+o 和 c+i
piaooo
2023-11-29 16:58:03 +08:00
鼠标侧键,一个是向前跳转一个是向后跳转
AlvaMu
2023-11-29 17:05:35 +08:00
@PainAndLove 嗯嗯,diagram 是看类继承,实现接口之间的关系,structure 是看本类方法和类属性的,hierarchy 看的是方法调用链,几个结合起来
structure 我一般不怎么用,觉得太重了,一般用 cmd+f12 (file structure)快捷键,出来一个小窗口里面看就够了
qqService
2023-11-30 11:08:19 +08:00
@tool2d 辅助 app 是 idea 插件吗 ,求推荐

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/995874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX