拾忆🍂拾忆🍂
  • cpp
  • MySQL
  • Oracle
  • PostgreSQL
  • MyBatis
  • API升级
  • HMOS
  • 百变小组件
  • hdc
  • 元服务
  • Java
  • MinIO
  • Stream
  • JSP & Struts2
  • Spring
  • FFmpeg
  • Linux
  • Git
  • Nginx
  • Ollama
  • Adobe Audition
  • Aseprite
  • Excel
  • Markdown基本用法
  • MuseScore 4.x
  • UVR
  • Windows
  • emoji-cheat-sheet
  • IDE快捷键
  • obs-studio
  • YOLO
  • Python
  • VuePress 2.x
  • 内置组件
  • markdown-container
  • markdown-ext
  • markdown-hint
  • markdown-preview
  • markdown-tab
  • Markdown扩展语法
  • 插件配置
  • prismjs
  • 样式
  • CSS
  • JS
  • TS
  • Vue3
主页
梦的开始🌅
  • cpp
  • MySQL
  • Oracle
  • PostgreSQL
  • MyBatis
  • API升级
  • HMOS
  • 百变小组件
  • hdc
  • 元服务
  • Java
  • MinIO
  • Stream
  • JSP & Struts2
  • Spring
  • FFmpeg
  • Linux
  • Git
  • Nginx
  • Ollama
  • Adobe Audition
  • Aseprite
  • Excel
  • Markdown基本用法
  • MuseScore 4.x
  • UVR
  • Windows
  • emoji-cheat-sheet
  • IDE快捷键
  • obs-studio
  • YOLO
  • Python
  • VuePress 2.x
  • 内置组件
  • markdown-container
  • markdown-ext
  • markdown-hint
  • markdown-preview
  • markdown-tab
  • Markdown扩展语法
  • 插件配置
  • prismjs
  • 样式
  • CSS
  • JS
  • TS
  • Vue3
主页
梦的开始🌅
  • 「从开始,到永久」
  • C艹

    • cpp
  • Database

    • MySQL
    • Oracle
    • PostgreSQL
    • MyBatis
  • HarmonyOS

    • API升级
    • HMOS
    • 百变小组件
    • hdc
    • 元服务
  • Java

    • Java
    • MinIO
    • Stream
    • JSP & Struts2
    • Spring
  • Linux

    • FFmpeg
    • Linux
    • Git
    • Nginx
  • LLM

    • Ollama
  • Others

    • Adobe Audition
    • Aseprite
    • Excel
    • Markdown基本用法
    • MuseScore 4.x
    • UVR
    • Windows
    • emoji-cheat-sheet
    • IDE快捷键
    • obs-studio
    • YOLO
  • Python

    • Python
  • VuePress

    • VuePress 2.x
    • 内置组件
    • markdown-container
    • markdown-ext
    • markdown-hint
    • markdown-preview
    • markdown-tab
    • Markdown扩展语法
    • 插件配置
    • prismjs
    • 样式
  • Web

    • CSS
    • JS
    • TS
    • Vue3
  • 主页

IDE快捷键

IDEA

File and Code Templates

Settings-Editor-File and Code Templates:Files

html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>#[[$Title$]]#</title>
</head>

<body>
#[[$END$]]#
</body>

<script>

</script>
</html>

application.yml

server:
    ## 应用服务 WEB 访问端口
    port: 8080
      #servlet:
    #content-path: /
spring:
    application:
        ## 应用名称
        name: BMapDemo
    datasource:
        ## 数据源名称
        ## name: defaultDataSource
        ## 数据库驱动:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/exam?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: root
        password: 123456
    mvc:
        hiddenmethod:
            filter:
                ## 启用 RestFul 风格
                enabled: true
        view:
            suffix: .html
            static-path-pattern: /**
    web:
        resources:
            static-locations: classpath:/templates/,classpath:/static/
## 日志
logging:
    level:
        root: info
mybatis:
    #指定Mybatis的Mapper文件
    mapper-locations: classpath:mappers/*xml
    #指定Mybatis的实体目录
    type-aliases-package: com.example.entity
    configuration:
        ## 配置日志
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        ## 开启驼峰命名
        map-underscore-to-camel-case: true

controller.java

package ${package.Controller};

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;

import $!{package.Service}.$!{table.serviceName};
import ${package.Entity}.${entity};

#if(${superControllerClassPackage})
import ${superControllerClassPackage};
#end

/**
 * <p>
 * $!{table.comment} 前端控制器
 * </p>
 *
 * @author ${author}
 * @since ${date}
 */
#if(${restControllerStyle})
@RestController
#else
@Controller
#end
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end")
#if(${kotlin})
class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end

#else
    #if(${superControllerClass})
public class ${table.controllerName} extends ${superControllerClass} {
#else
public class ${table.controllerName} {
#end

    @Resource
    private ${table.serviceName} ${table.entityPath}Service;

    @PostMapping
    public Boolean save(@RequestBody ${entity} ${table.entityPath}) {
        return ${table.entityPath}Service.saveOrUpdate(${table.entityPath});
    }

    @DeleteMapping("/{id}")
    public Boolean delete(@PathVariable Integer id) {
        return ${table.entityPath}Service.removeById(id);
    }

    @GetMapping
    public List<${entity}> findAll() {
        return ${table.entityPath}Service.list();
    }

    @GetMapping("/{id}")
    public List<${entity}> findOne(@PathVariable Integer id) {
        return ${table.entityPath}Service.list();
    }

    @GetMapping("/page")
    public Page<${entity}> findPage(@RequestParam Integer pageNum,
                                @RequestParam Integer pageSize) {
        return ${table.entityPath}Service.page(new Page<>(pageNum, pageSize));
    }

}

#end

generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--导入属性配置-->
    <!--<properties resource="classpath:generator.properties" />-->
    <!--指定特定数据库的jdbc驱动jar包的位置-->
    <classPathEntry location="D:\MAVEN\maven_resp\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar"/>
    <context id="scm_mysql_tables" targetRuntime="MyBatis3">
        <!--自动生成toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
        <!-- 防止生成的代码中有很多注释,加入下面的配置控制 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!--jdbc的数据库连接 -->
        <jdbcConnection
                driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/exam?useSSL=false&amp;nullCatalogMeansCurrent=true&amp;serverTimezone=Asia/Shanghai"
                userId="root"
                password="123456">
        </jdbcConnection>
        <!--类型处理器,在数据库类型和java类型之间的转换控制-->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
           targetPackage     指定生成的model生成所在的包名
           targetProject     指定在该项目下所在的路径
       -->
        <javaModelGenerator targetPackage="com.example.entity"
                            targetProject="src/main/java">
            <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否对pojo添加构造函数 -->
            <property name="constructorBased" value="true"/>
            <!-- 建立的pojo对象是否不可改变,即生成的pojo对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
            <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- sql mapper 映射配置文件 -->
        <sqlMapGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- 生成易于使用的针对Model对象和XML配置文件 的代码
               type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
               type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
               type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
       -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.example.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 数据表进行生成操作 schema:库名; tableName:表名;
            domainObjectName:对应的PO
        -->
        <table schema="oa" tableName="bmap_demo" domainObjectName="BMapPoint"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
        <!--<table schema="oa" tableName="aoa_salary" domainObjectName="Salary"-->
        <!--enableCountByExample="false" enableUpdateByExample="false"-->
        <!--enableDeleteByExample="false" enableSelectByExample="false"-->
        <!--selectByExampleQueryId="false">-->
        <!--</table>-->
        <!--<table schema="jd" tableName="items" domainObjectName="Item"-->
        <!--enableCountByExample="true" enableUpdateByExample="true"-->
        <!--enableDeleteByExample="true" enableSelectByExample="true"-->
        <!--selectByExampleQueryId="true">-->
        <!--</table>-->
    </context>
</generatorConfiguration>

mapper.java

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.BMapPointMapper">
  <resultMap id="BaseResultMap" type="com.example.entity.BMapPoint">
    <constructor>
      <idArg column="id" javaType="java.lang.Long" jdbcType="BIGINT" />
      <arg column="lat" javaType="java.lang.String" jdbcType="VARCHAR" />
      <arg column="update_time" javaType="java.util.Date" jdbcType="TIMESTAMP" />
    </constructor>
  </resultMap>
  <sql id="Base_Column_List">
    id, point_id, point_name, city_name, lng, lat, update_time
  </sql>
  <select id="selectAll" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from bmap_demo
  </select>

</mapper>

File Header

Settings-Editor-File and Code Templates-Files:Includes - 新建File Header文件-Extension填java(其他后缀自行更改,这样每次创建这个后缀的文件就会加上这些代码,要在File选项卡里的Class文件里加上#parse("File Header.java")默认就有)

/**
 * @projectName ${PROJECT_NAME}
 * @date ${DATE} ${TIME}
 * @author Enlin
 * @description
 * @version v1.0
 */

方法注释

Editor-Live Templates-新建methodComment_diy

Abbreviation: /

Description: 添加方法注释

Template test:(下方代码块)

**
 * 
 * @date $DATE$ $TIME$ 
 * @author Enlin 
 * $paramsHandler$
 $params$* @return $return$
 * @since v1.0
 */

Applicable in :选择Java的所有

Expand with:Default(Tab) 或者其他,意为输入/之后按Tab键,自动加入以上代码

Edit Variables...

NameExpressionDefault valueSkip if defined
DATEdate()NULL
TIMEtime()NULL
paramsHandler下方代码块NULL
paramsNULL
return下方代码块NULL

paramsHandler

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { if(i!=0)result+= ' * '; result+='@param ' + params[i] + ' ' + ((i < (params.size() - 1)) ? '\\n' + '\\t' : ''); }; return result", methodParameters())

return

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split('<').toList(); for(i = 0; i < params.size(); i++) {if(i!=0){result+='<';};  def p1=params[i].split(',').toList();  for(i2 = 0; i2 < p1.size(); i2++) { def p2=p1[i2].split('\\\\.').toList();  result+=p2[p2.size()-1]; if(i2!=p1.size()-1){result+=','}  } ;  };  return result", methodReturnType()) 

参考:IDEA类和方法注释模板设置(非常详细)_idea 类注释模板-CSDN博客

快捷键

  • 关闭平滑滚动,滚动页面更快:

    • Settings -> Appearance&Behavior -> Appearance -> UI Options(Smooth Scrolling)
  • 文件历史颜色:

    • 绿色:新增
    • 蓝色:修改
    • 灰色:删除
  • Git文件颜色

    • 绿色,已经加入控制暂未提交
    • 红色,未加入版本控制
    • 蓝色,加入,已提交,有改动
    • 白色,加入,已提交,无改动
    • 灰色:版本控制已忽略文件。
  • 快速跳转到括号的首或尾:

    1. 鼠标 指在 { or } 位置
    2. Ctrl + } 跳到 } 括号末尾部
    3. Ctrl + { 跳到 { 括号的头部
  • 显示 @Value 的实际值:

    Ctrl + Alt + - / +

  • 局部代码块搜索相关内容:

    先选中代码块,Ctrl + R ,之后在第一个 input 上输入要搜索的内容

Key GroupsFunctionRemark
Ctrl + Shift + A搜索IDEA的命令在知道命令的名称的情况下才好用
Ctrl + 文件标题栏鼠标左键Show in Explorer
Ctrl + 鼠标右键框选局部代码块(一对括号内)需要Rainbow Brackets插件
Alt + 鼠标右键置灰局部代码块外所有代码块需要Rainbow Brackets插件
Ctrl + 鼠标左键跳转到类、方法的定义位置
Ctrl + Shift + 鼠标左键跳转到方法的实现类Ctrl + Shift + B 同样
Ctrl + Alt + F7查看调用了该方法的所有地方
Ctrl + Alt + T给代码块增加if、try等
Alt + Insert生成构造器相关代码
Ctrl + Alt + [ 或 ]多个IDEA窗口之间切换
Ctrl + E最近文件
Ctrl + F11查看标签(Ctrl + 标签号跳转)Ctrl + Shift + 数字可直接设置标签
Git提交记录里- 单击一个文件 按F4跳转到源文件
Edit-General-Appearance最多粘性行数IDEA 2024.01新特性(方法过长时,在屏幕顶部显示方法名) show sticky lines while scrolliing
Alt + ↑/↓跳转到上/下一个方法定义处
Alt + →/←左/右切换已打开文件
Alt + Shift + 鼠标双击文本多选文本跨行复制的也可以保持跨行格式粘贴
F2跳转到代码中下一个ERROR的地方不知是否有CodeGlance Pro插件才生效
Ctrl + D1. 复制当前行到下一行
2. 选择两个文件之后对比内容差异

Debug

Key GroupsFunctionRemark
F8下一行
Alt + F8实时计算器可以在当前断点处2执行自己的代码块
Alt + F9直接执行到光标所在行
Drop Frame方法回溯,执行回溯到当前方法的调用处,并将所有相关变量的值重置到那一时刻。(仅当前方法有上级方法时可用)

粘性行:Ctrl + Alt + s -> Editor -> General -> Appearance

背景

IntelliJ IDEA 设置背景图片

  • 第一种:
    • Ctrl + Alt + S 打开设置
    • 选择 Appearance & Behavior -> Appearance
    • 点击 Background Image 按钮
  • 第二种:
    • Ctrl + Alt + A ,键入: set Background image

滚动条颜色

插件

如果插件商店空白,可以添加代理:

Settings > Plugins > 点击齿轮图标并选择 Manage Plugin Repositories,然后添加以下URL。

镜像源URL
阿里云https://mirrors.aliyun.com/intellij-plugin/
清华大学开源镜像https://mirrors.tuna.tsinghua.edu.cn/jetbrains/plugins/

插件列表

名称功能备注
CodeGlance Pro滚动条 MiniMap
Rainbow Brackets彩虹括号
MyBatis Log EasyPlussql日志https://github.com/Link-Kou/intellij-mybaitslog

破解

手动

  • 介绍一个”牛逼闪闪”开源库:ja-netfilter – 知了

  • ja-netfilter: A Java Instrumentation Framework

  • 修改文件:idea64.exe.vmoptions

    idea64.exe.vmoptions
    -javaagent:D:/WorkSpace/IDEA/ja-netfilter.jar
    
  • 修改文件: url.conf

    url.conf
    [URL]
    PREFIX,https://check-license.squaretest.com
    PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action
    PREFIX,https://account.jetbrains.com.cn/lservice/rpc/validateKey.action
    PREFIX,https://account.jetbrains.com/lservice/rpc/validateLicense.action
    PREFIX,https://account.jetbrains.com.cn/lservice/rpc/validateLicense.action
    KEYWORD,116.62.33.138
    
    
  • 如果需要激活码:https://ckey.run

    07A1D7CEA3-eyJsaWNlbnNlSWQiOiIwN0ExRDdDRUEzIiwibGljZW5zZWVOYW1lIjoiY2tleS5ydW4iLCJhc3NpZ25lZU5hbWUiOiIiLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwOTktMTItMzEiLCJwYWlkVXBUbyI6IjIwOTktMTItMzEifV0sIm1ldGFkYXRhIjoiMDEyMDIzMDkxNFBTQVgwMDAwMDUifQ==-ZRCD9U+IqG6FoR6OuL21+CY2i6AUlvWZlLxDIjJd95WCLCBn+9sxGW36EASnrqTdANhK+8QcXVosuw/a553ZLLWRoZhi5t759iLVVyERw747FLzIkmTet6kUVlZkhPIUdXF8pkAD6qmgDWiJ7RRVvEGtqtSyeEaG+o9Q71v2DnisTf5idtrpoderhESh7QNUWW8GTtptFTsBnC1dITYk62vkVsqOBGZiOXyZSOjqs9K+74MTLjmnqI545zReTZ7Mpu2eNceYE9tq4+ax6DzuY95PhWS5PKavQY2+9HNy4oWKKVhBuHNhvIeED0IOHsRneEuuqipRXr9AwsBfDmqNY37Eo8UANGtehHQE1xsHLoVkuWWBohmNSqA9puZT8cj6Pjem/tJgBfttetkvgXLsOea/1xZ0epoXyPufgXFxRCbyOi+DNt6Rdf7EEp1d59vC/jGRS8H9RUjxKDTpHrQVvnXciLRIUQYIdGkoXfHySMHaDnJvzqIFWB01zngaNAmBfZdxRYQGBEhjEliVnccQ1Jkqq6SrJS7gtizXjH/NTltD8urzwR7T7tqz1U6OudjSRYTCBNSLIPCbHXkxG971EfkTBHSQRtntYGJedYIjU9ChCCCfWXnc9eabwJGa0suWlbIOMNCb7QUdJXtVs4uqZBhv4Rc1fC2sXgVfv7kTyMI=-MIIEsTCCApmgAwIBAgIGAZcli9cIMA0GCSqGSIb3DQEBCwUAMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0EwIBcNMjUwNTMwMDg1MzMxWhgPMjEyNTA1MzEwODUzMzFaMBkxFzAVBgNVBAMMDkpldGJyYWlucy1IZWxwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA92kSWA6VyNoOdoT+ayuwjkC2VKD4vaik5jcq3tZntUkgrmehwFWi4kqOt99LpP/XvD8z8GWekszqM4piPcMyJgy6yCmbHpYe+DKKOGReO2Ftl98pDIR+LjfV8Oy1bfIhmmdTKLVB7a49JXmlz0NOArkLyQuMXuIUabxcmcABJSkzznR9YwagM2iJwZx3BSZ89WJfvXyRZ9hNslxU68HOBMfsSj8qYAQzxWefWtJzI95RgdpieEe9qNKBQt+9pxt2CWLcIQwF0IpviONKG77FAHxYsT3mtCvq6ZCJ6i9uHsP0kFHm+JWiNK6ZgotwsFUhSQGPqiK5pcs4VkBVAhw4K4h6DJk6doJhm/r59hajLcwNG02v19S7XmrYjY9Ul/rYrKcrG39BEGkCCJBx0R/bBgXXFSMiMbyyQLEB3sHlhouKNqxYvn1u6EmYQJnt3s+PRRsko0fzeV7/DI9x6vxia6ZqabceC7cjRaR7DPqmrP7vN1vfXB3J21NWEb5N5e1YaJ9bVPp1lNpObafPCI+4kaRGKMIJzbeXTMgu51PniUdMLV9I662EcSwuCfPtj/Dlhd8MCiJDnLtD6hu4g3Qs5gHTc6KLry9f0hOKC0OdAbd8ExHykVEpzkY/GPDApl3Lgfsdfv5C8jZrQWkxHPvdgwaDzCiJ8xUjlWZB6D7FtqsCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAjHiuNA9fgprPBKpg0np7LuBimrdUjOsmRQuSBxW5CPnXyHu06Yj841bKq7MHw2RcpGZUBFqYflNggGat8Id9IFaqSICxNUUUjFSY+qOxmg0aJZTeJFj3gqNniQu79yfgL3nZ907EgqCL9JvgSDH0xFDGHmZTz7qaCcXMHwx8BwXnJedZqwYYYPDMT1+40kSDB6cIHyAYLmcOyiFjx8LUUuRnBMk1pHB8XO9KcObzns1J+/mc2XpSvY9NTdMISszHXnrfz4PdPdgB4v+3X1zKjnmFhudY2Dii3HZx4j2MPdSRZTpTl8hEB4geGkJLusJsz71xHs6s8p+63DP39xDN0CmzCsBnSH5XZlgh4Rni4AEKl5duKCOsWy/gEYtBwz57Ou/+y3+wonBJwAlq8ktReUPwomCghe8kyeBafssIKliSDWSzasORjn/u/p7NKDU1zMavduHqhbOQHiH25kd0f3Ezhrt0kZxy+BITTZNKJRK2dqK4ps1ZsNQQf1AJ28kA+4K6q/KYsAwCuZiq7r34cpwEyQh2XUkIllhNxoUcKU5mA/rMgM+cpKypOBiRBeru5d6hkzKoy2iRTMiR9+N2BNZRw0FhxNwjlu5X/PUrliaP0Jy8kJvo5aOfyMZ9ijkZCL+zQKEbgBCbaRE8pzzwoiYeTLq1s12wJdNIO6nZuiU=
    

懒人专属命令(全自动)🚀

Windows PowerShell:
irm ckey.run | iex

加 debug 查看完整流程:

irm ckey.run/debug | iex

仅查看源码(不执行):

irm ckey.run

Linux / WSL / Ubuntu:
wget --no-check-certificate ckey.run -O ckey.run && bash ckey.run

Debug 模式:

wget --no-check-certificate ckey.run/debug -O ckey.run && bash ckey.run

macOS(Intel / M 系列):

使用 curl:

curl -L -o ckey.run ckey.run && bash ckey.run

Debug 模式:

curl -L -o ckey.run ckey.run/debug && bash ckey.run

激活原理 🔍

本工具通过自动检测本机 JetBrains 产品,下载并配置 ja-netfilter 激活代理,注入启动参数(包括 -javaagent 和必要的 --add-opens 权限),并调用远程接口生成激活密钥,实现无需手动配置的全自动激活。

不需要用户配置任何 License 文件或手动打补丁!

DateGrid快捷键

  • 图标含义
    • 右下角金钥匙:Primary Key
    • 左下角圆圈:Not Null
    • 左侧蓝色:Index
Key GroupsFunctionRemark
Ctrl + F检索表数据窗口内所有的内容
Database列表内 Ctrl + F(直接打字符)搜索表名点击右侧筛选按钮:只显示符合条件的表
表数据窗口内 Ctrl + F12搜索列名(单击跳转)也可右键任意列名:Columns List
表数据窗口内:标题右上角下拉框Data Extractors可选择复制列的方式
Database列表内-左键点击tables F4数据库内所有表的信息
(接上)任意一行 Alt + Shift + BDatabase列表内跳转到该表

VS Code快捷键

Key GroupsFunctionRemark
Alt + Shift + A代码块注释
Alt + Shift + FFormat Code
Ctrl + K + F仅格式化选定代码
Ctrl + K + S查看所有快捷键
Ctrl + Shift + P命令行
全选之后Ctrl + Shift + P >Join Lines压缩代码与上面功能相反
Ctrl + B折叠左侧工具栏
Ctrl + F文件内搜索
Ctrl + H文件内搜索并替换
Ctrl + Shift + F全局搜索
Ctrl + L选中整行
Alt + Shift + ↑/↓复制一行到上\下方
Alt + Z打开/关闭 自动换行
Ctrl + P打开项目中文件
目录里选择一个文件Ctrl + Alt + R从资源管理器打开

批量替换md标题

示例将 ### 三级标题 批量替换为 ## 二级标题:

  • 查找内容:

    ^(\s*)###\s+(.*)
    
    • ^:匹配行的开始。
    • (\s*):匹配行首可能存在的任意数量的空白字符(如空格或制表符),并将其捕获为组 1。
    • ###:匹配字面量 ###。
    • \s+:匹配 ### 后面的一个或多个空白字符。
    • (.*):匹配标题内容,并将其捕获为组 2。
  • 替换为:

    $1## $2
    
    • $1:引用第一个捕获组(即行首的空白字符)。
    • ##:替换为两个 # 及其后的一个空格。
    • $2:引用第二个捕获组(即原来的标题内容)。

通义灵码

Key GroupsFunctionRemark
Ctrl + Shift + L打开/关闭智能问答窗口
Ctrl + Shift + I唤起行间会话窗口
Tab接受行间代码建议
Esc废弃行间代码建议
Alt + [查看上一个行间推荐结果
Alt + ]查看下一个行间推荐结果
Alt + P手动触发行间代码建议VS Code 好像不能用
Shift + Alt + P选择的代码:解释(Explain)
Shift + Alt + U选择的代码:单元测试(UnitTest)
Shift + Alt + M选择的代码:优化(Optimize)
Shift + Alt + V选择的代码:添加注释(Comment)

Navicat 快捷键

Key GroupsFunctionRemark
Ctrl + D编辑表结构
Ctrl + Q快速查询窗口
查看-显示-显示或隐层列当表中字段过多时可以快速定位到某列(可以Ctrl+F查询)
Ctrl + F查询表名或列名
Shift+Enter / F2修改某列值
右键行最左侧可以复制为Insert语句

IDEA 控制台乱码

  • 打开\apache-tomcat-8.5.93\conf\logging.properties,并修改为

    ## catalina日志配置
    ## 1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK
    
    ## localhost日志配置
    ## 2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    2localhost.org.apache.juli.AsyncFileHandler.encoding = GBK
    
    ## server日志配置
    ## java.util.logging.ConsoleHandler.encoding = UTF-8
    java.util.logging.ConsoleHandler.encoding = GBK
    

保存自动格式化

idea 取消自动格式化 - 了悟 - 博客园 (cnblogs.com)

File - Settings - Editor - General - On Save 里面的几个对钩都点掉

Settings` → `Tools` → `Actions on Save` → 取消 `Reformat code

Edge 快捷键

ctrl + shift + L:使用当前标签页搜索剪贴板中的内容

最近更新: 2025/12/3 17:55
Contributors: Enlin
Prev
emoji-cheat-sheet
Next
obs-studio