编程工具使用技巧(一):IDEA 如何使用TAB跳出括号,常用快捷键,推荐插件

如何使用TAB跳出括号

在2018.2 的版本中,官方加入了TAB跳出括号快捷键,需要自行开启,此方法通用于所有的jetbrains的产品,
此处以IDEA举例:在 Settings->Editor->General->Smart Keys 中就能找到 Jump outside closing bracket/quote with Tab 点击即可。
勾选红色划线选项

IDEA常用快捷键

1.代码编写

  • Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate)
  • Ctrl + O 重写方法
  • Ctrl + I 实现方法
  • CTRL+ALT+L 格式化代码
  • CTRL+E 显示最近更改的代码
  • CTRL+ALT+SPACE 类名或接口名提示(即与类名、变量名自动补全的方法一致)
  • SHIFT+ENTER 另起一行
  • CTRL+Z 倒退(撤销)
  • CTRL+SHIFT+Z 向前(取消撤销)

2.查询

  • ALT+F7 找到你的函数或者变量或者类的所有引用到的地方
  • 双击SHIFT 在项目的所有目录查找文件
  • Ctrl+N 查找类
  • Ctrl+Shift+N 查找文件
  • CTRL+G 定位行
  • CTRL+F 在当前窗口查找文本
  • CTRL+SHIFT+F 全局查找文本
  • CTRL+R 在 当前窗口替换文本
  • CTRL+SHIFT+R 全局替换文本

3.Git快捷键

  • CTRL + K commit代码

4.推荐插件

  • Spring Assistant
    或许你在根据教程学习Spring boot 的时候,发现新建项目时没有Spring Initializr 选项,网上多数教学安装Spring boot插件,其实是在新版本中已经改成了Spring Assistant

  • CamelCase
    将不是驼峰格式的名称,快速转成驼峰格式,安装好后,选中要修改的名称,按快捷键shift+alt+u。

  • CodeGlance
    在代码编辑区显示代码预览,方便切换,可以在Setting中修改宽度、在编辑区的左右等
    编程工具使用技巧(一):IDEA 如何使用TAB跳出括号,常用快捷键,推荐插件_第1张图片编程工具使用技巧(一):IDEA 如何使用TAB跳出括号,常用快捷键,推荐插件_第2张图片

  • lombok
    @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

当然也可以单独使用@Setter,@Getter

官方实例如下:

@Data public class DataExample {
  private final String name;
  @Setter(AccessLevel.PACKAGE) private int age;
  private double score;
  private String[] tags;
  
  @ToString(includeFieldNames=true)
  @Data(staticConstructor="of")
  public static class Exercise<T> {
    private final String name;
    private final T value;
  }
}

不使用效果如下:

public class DataExample {
  private final String name;
  private int age;
  private double score;
  private String[] tags;
  
  public DataExample(String name) {
    this.name = name;
  }
  
  public String getName() {
    return this.name;
  }
  
  void setAge(int age) {
    this.age = age;
  }
  
  public int getAge() {
    return this.age;
  }
  
  public void setScore(double score) {
    this.score = score;
  }
  
  public double getScore() {
    return this.score;
  }
  
  public String[] getTags() {
    return this.tags;
  }
  
  public void setTags(String[] tags) {
    this.tags = tags;
  }
  
  @Override public String toString() {
    return "DataExample(" + this.getName() + ", " + this.getAge() + ", " + this.getScore() + ", " + Arrays.deepToString(this.getTags()) + ")";
  }
  
  protected boolean canEqual(Object other) {
    return other instanceof DataExample;
  }
  
  @Override public boolean equals(Object o) {
    if (o == this) return true;
    if (!(o instanceof DataExample)) return false;
    DataExample other = (DataExample) o;
    if (!other.canEqual((Object)this)) return false;
    if (this.getName() == null ? other.getName() != null : !this.getName().equals(other.getName())) return false;
    if (this.getAge() != other.getAge()) return false;
    if (Double.compare(this.getScore(), other.getScore()) != 0) return false;
    if (!Arrays.deepEquals(this.getTags(), other.getTags())) return false;
    return true;
  }
  
  @Override public int hashCode() {
    final int PRIME = 59;
    int result = 1;
    final long temp1 = Double.doubleToLongBits(this.getScore());
    result = (result*PRIME) + (this.getName() == null ? 43 : this.getName().hashCode());
    result = (result*PRIME) + this.getAge();
    result = (result*PRIME) + (int)(temp1 ^ (temp1 >>> 32));
    result = (result*PRIME) + Arrays.deepHashCode(this.getTags());
    return result;
  }
  
  public static class Exercise<T> {
    private final String name;
    private final T value;
    
    private Exercise(String name, T value) {
      this.name = name;
      this.value = value;
    }
    
    public static <T> Exercise<T> of(String name, T value) {
      return new Exercise<T>(name, value);
    }
    
    public String getName() {
      return this.name;
    }
    
    public T getValue() {
      return this.value;
    }
    
    @Override public String toString() {
      return "Exercise(name=" + this.getName() + ", value=" + this.getValue() + ")";
    }
    
    protected boolean canEqual(Object other) {
      return other instanceof Exercise;
    }
    
    @Override public boolean equals(Object o) {
      if (o == this) return true;
      if (!(o instanceof Exercise)) return false;
      Exercise<?> other = (Exercise<?>) o;
      if (!other.canEqual((Object)this)) return false;
      if (this.getName() == null ? other.getValue() != null : !this.getName().equals(other.getName())) return false;
      if (this.getValue() == null ? other.getValue() != null : !this.getValue().equals(other.getValue())) return false;
      return true;
    }
    
    @Override public int hashCode() {
      final int PRIME = 59;
      int result = 1;
      result = (result*PRIME) + (this.getName() == null ? 43 : this.getName().hashCode());
      result = (result*PRIME) + (this.getValue() == null ? 43 : this.getValue().hashCode());
      return result;
    }
  }
}

你可能感兴趣的:(Java学习,编程工具)