为了让我从 IDEA 更丝滑切换到 Cursor,我连快捷键都给搬过来。胸弟盟,这次我来真的了

514 阅读2分钟

各位码农同胞们,今天俺要宣布一个大咪咪!我们用惯了的那个号称“Java第一IDE”的IDEA。小爷我,没错,就是我,决定正式要跟它“分手”了!

我知道你们要说啥,“IDEA那么香,你是不是脑子瓦特了?” 嘿,你别说,这次我还真不是一时兴起,我连压箱底的祖传快捷键都打算搬家到新欢Cursor那里去了!

俗话说得好,旧的不去,新的不来,为了更丝滑的未来(和可能更智能的AI?),胸弟盟,这次,我是玩儿真的!坐等Cursor带我起飞,代码从此不再卑微!

1. 快捷键

作用IDEACursor
当前文件文本查找Ctrl + FCtrl + F
当前文件文本替换Ctrl + RCtrl + H
全局文本查找Shift + Ctrl + FShift + Ctrl + F
全局文本替换Shift + Ctrl + RShift + Ctrl + H
查找文件Ctrl + Shift + NCtrl+P
搜索所有Shift + ShiftCtrl+P 搜索时以#开头
格式化代码Ctrl+Alt+LAlt+Shift+F
生成代码(如get,set方法,构造函数等)Alt+Insert右键 Source Action
自动缩进Ctrl+Alt+ICtrl + [ 向前缩进,Ctrl + ] 向后缩进
列出变量引用处Alt + F7Shift+F12
快速找到成员变量的出处Ctrl + 鼠标点击F12
重命名Shift+F6F2
快速选中相同文本Alt + JCtrl+D
重写方法Ctrl+O输入需要重写的方法名,选择即可
实现方法Ctrl+I输入需要实现的方法名,选择即可
快速修复选择Alt + enterCtrl+.
删除剪切当前行Ctrl + XCtrl + X
复制当前行Ctrl +DAlt+Shift+↓
显示方法参数信息Ctrl+PCtrl+Shift+Space
跳转历史光标所在处Ctrl + Alt + ←/→Alt + ←/→
切换打开文件Alt + ←/→ 方向键Ctrl + Tab
go to(跳转指定行号)Ctrl + GCtrl + G
手动缩进多行选中 Tab / Shift + Tab多行选中 Tab / Shift + Tab
删除整行Ctrl + YShift+Delete
快速进入变量/方法/类的定义处Ctrl+点击光标+F12
撤销 / 取消撤销Ctrl + Z / Ctrl + Shift + ZCtrl + Z / Ctrl + Shift + Z
代码自动补全:自动收尾Ctrl + Shift + enter
跳转到下一个高亮错误 或 警告位置F2
类的层级关系Ctrl + H右键 Show Type Hierarchy
类成员快速显示Ctrl + F12左侧显示大纲窗口
方法快速跳转Alt + ↑/↓

2. 自定义代码片段

image.png

{
    // Place your snippets for java here. Each snippet is defined under a snippet name and has a prefix, body and 
    // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
    // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
    // same ids are connected.
    // Example:
    // "Print to console": {
    // 	"prefix": "log",
    // 	"body": [
    // 		"console.log('$1');",
    // 		"$2"
    // 	],
    // 	"description": "Log output to console"
    // }
    "print": {
        "prefix": "sout",
        "body": [
            "System.out.println(\"$0\");"
        ],
        "description": "System.out.println"
    },
    "main": {
        "prefix": "psvm",
        "body": [
            "public static void main(String[] args) {",
            "$1",
            "}"
        ],
        "description": "public static void main(String[] args)"
    },
    "Class Doc Comment": {
        "prefix": "/cdoc",
        "body": [
            "/**",
            " * <p>",
            " * ${1:${TM_FILENAME_BASE}}",
            " * </p>",
            " *",
            " * @author ${2:Karl}",
            " * @since $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE ${CURRENT_HOUR}:${CURRENT_MINUTE}",
            " */"
        ],
        "description": "Class documentation template"
    },
    "Test": {
        "prefix": "test",
        "body": [
            "@Test",
            "public void test() {",
            "",
            "    $1",
            "}"
        ]
    },
    "ArrayList": {
        "prefix": "list",
        "body": [
            "List<$1> list = new ArrayList<>();"
        ]
    },
    "HashMap": {
        "prefix": "map",
        "body": [
            "Map<String, Object> $1 = new HashMap<>();"
        ]
    },
    "String": {
        "prefix": "ps",
        "body": [
            "private String "
        ]
    },
    "Static String": {
        "prefix": "fin",
        "body": [
            "public static final String $0"
        ]
    }
}