今天做了什么:

  1. 整理 Idea 快捷键
  2. 整理 zsh 中定义的常用的快捷键

Idea 快捷键

  • 使用快捷键 command +1 打开 Project 窗口

  • 输入 control + R 可以运行 Java 代码

上下文

  • 在 for 方法上,输入 option + enter,可以调出上下文,替换 for 表达式

  • 在字符串上面输入 option + enter,可以调出上下文。

  • 在字符串上面或者双击选中,然后双击两次 ⇧ ,打开 Search Everywhere 弹窗,然后输入 case ,选择 Toggle Case 将 AVERAGE 变为小写。

  • 在没有使用的方法参数 redundant 上,输入 option + enter,可以选择 Safe delete 'redunant' 删除该参数

  • 在三目运算,输入 option + enter,可以选择 Negate '?:'

搜索

  • 查找最近文件:comand + E

  • 输入 ⇧ + command + A 可以打开 Find Action 窗口。

  • 双击两次 ⇧ 可以打开 Search Everywhere 窗口。输入关键字,可以搜索 java 类。

  • 如果想搜索Java类,则可以输入 command + O,并可以选择在 All Places 搜索。

  • 如果想搜索方法或者变量名称,则可以使用 option + command + O

自动补全

  • command + ↑ + enter 补全方法体、if、while、for 、switch 后面括号

  • 以下代码,在 new 后面输入 Ran ,然后按 tab 键可以补全 Random,然后在括号内,按 control+space ,可以调出查找窗口,然后选择 PROCESS_ID,最后按 ⇧ + command + enter 完成

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    
    class BasicCompletionDemo {
    
        private int PROCESS_ID = 0;
    
        public void systemProcess(){
            System.out.println(PROCESS_ID++);
        }
    
        public BasicCompletionDemo() {
            byte b = MAX_VALUE;
        }
    
        public void random() {
            Random random = new ;
        }
    }
    
  • 输入一个表达式,然后按 . 键

  • control + ⇧ + space

注释

  • 输入 command + / ,注释当行代码。
  • 选中一段代码块,输入 option + command + /,可以注释代码块。
    • 在 java 里面,添加的是 /**/
    • 在 xml 里面,添加的是<!---->

代码

  • 代码格式化

    • option + command + L 格式化代码。

    • 对选中的代码,使用 option + command + L ,可以格式化代码。再使用该快捷键,可以对整个文件进行格式化。

    • ⇧+option + command + L 可以查看格式化代码的设置

  • command + P 查看方法签名

  • F1 查看方法的 Javadoc

  • option + space 或者 command + Y 查看方法的定义

  • 使用 option + command + T 可以打开 Surround with 窗口;使用 option + command + del 可以打开 Unwrap 窗口

重构

  • 重命名 ⇧ + F6

  • 抽取变量 option + command + V

  • 抽取方法 option + command + M

  • 调出重构窗口 control + T

复制和删掉代码

  • 复制一行代码,使用 command + D

  • 按 ⇧ + ↑ 两次,可以选择两行,然后 使用 command + D,可以复制两行代码。

  • 如果要删除当前行代码,可以使用 command + del 快捷键。

  • 剪切行代码,使用 command + x

  • 复制代码,使用 command + c

    • 鼠标在某一行,输入 command + c 可以选中该行

选中

  • 把鼠标停留在一个单词,输入 option + ↑,可以选择单词;再次输入 option + ↑,可以选择一句话;再次输入 option + ↑,可以选中整个字符串变量;再次输入 option + ↑,可以选择方法的所有变量;再次输入 option + ↑,可以选中方法加所有参数;再次输入 option + ↑,可以选中整行内容。

  • 使用 control + G 选中鼠标所在单词

  • 再次使用 control + G 选中下一个鼠标所在单词

  • 使用 control + ⇧ + G 取消选择上一个

  • 使用 control + command + G 选择所有出现鼠标所在单词,然后,输入一个单词,会替换所有选中的单词。

移动代码

  • 将当前行代码向上移:option + ⇧ + ↑

  • 将当前行代码向下移:option + ⇧ + ↓

  • 将当前方法向上移:command + ⇧ + ↑

  • 将当前方法向下移:command + ⇧ + ↓

收缩代码

  • 收缩代码:command + -

  • 展开代码:command + =

  • 收缩一个文件的所有代码:command + ⇧ + -

  • 展开一个文件的所有代码:command + ⇧ + =

zsh中定义的快捷键

~/.oh-my-zsh/plugins/git/git.plugin.zsh

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
alias g='git'
alias ga='git add'
alias gaa='git add --all' #将所有变更添加到暂存区
alias gapa='git add --patch' #交互式的选中变更添加到暂存区

#分支相关
alias gb='git branch' #列出当前仓库中所有的分支,并在当前分支前面标记一个星号
alias gba='git branch -a' #列出所有的本地分支和远程分支
alias gbd='git branch -d' #命令用于删除指定的本地分支
alias gbD='git branch -d --force' # 命令用于强制删除指定的本地分支
alias gbm='git branch -m' #重命名分支
alias gbnm='git branch --no-merged' #列出所有未合并到当前分支的分支
alias gbr='git branch --remote' #列出远程分支
alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' #将当前分支与远程仓库的同名分支建立起追踪关系

#在本地和远程仓库中重命名 Git 分支
function grename() {
  if [[ -z "$1" || -z "$2" ]]; then
    echo "Usage: $0 old_branch new_branch"
    return 1
  fi

  # Rename branch locally
  git branch -m "$1" "$2"
  # Rename branch in origin remote
  if git push origin :"$1"; then
    git push --set-upstream origin "$2"
  fi
}

alias gc='git commit --verbose' #提交当前暂存区中的变更,并显示详细的提交信息
alias gc!='git commit --verbose --amend'#修改最近一次的提交,并在提交过程中显示详细的变更信息
alias gcmsg='git commit -m' #提交当前暂存区中的变更并提供提交信息

alias gco='git checkout'
alias gcor='git checkout --recurse-submodules' #递归地切换到主仓库以及所有子模块的相应提交或分支
alias gcb='git checkout -b' #创建一个新分支并切换到该分支
alias gcB='git checkout -B' #创建一个新分支并强制切换到该分支
alias gcd='git checkout $(git_develop_branch)'
alias gcm='git checkout $(git_main_branch)'

alias gcl='git clone --recurse-submodules' #克隆代码
gccd #克隆代码并进入目录

alias gcf='git config --list'

alias gf='git fetch'
alias gfo='git fetch origin'


alias gm='git merge'
alias gma='git merge --abort'
alias gms="git merge --squash"
alias gmom='git merge origin/$(git_main_branch)'
alias gmum='git merge upstream/$(git_main_branch)'

#拉取代码
alias gl='git pull'
alias gpr='git pull --rebase' #拉取远程仓库的最新提交,并将本地提交应用到最新提交
alias gpra='git pull --rebase --autostash' #拉取远程仓库的最新提交,并将本地提交应用到最新提交之上,同时自动保存和恢复未提交的更改
alias ggpull='git pull origin "$(git_current_branch)"'


#从远程仓库拉取最新提交,并使用 rebase 的方式将本地提交应用到拉取的提交之
function ggu() {
  [[ "$#" != 1 ]] && local b="$(git_current_branch)"
  git pull --rebase origin "${b:=$1}"
}

#提交代码
alias gp='git push'
alias gpd='git push --dry-run'
alias ggpush='git push origin "$(git_current_branch)"'

#拉取代码并提交
function ggpnp() {
  if [[ "$#" == 0 ]]; then
    ggl && ggp
  else
    ggl "${*}" && ggp "${*}"
  fi
}

alias grb='git rebase'
alias grba='git rebase --abort'
alias grbc='git rebase --continue'
alias grbi='git rebase --interactive'
alias grbo='git rebase --onto'
alias grbs='git rebase --skip'
alias grbd='git rebase $(git_develop_branch)'
alias grbm='git rebase $(git_main_branch)'
alias grbom='git rebase origin/$(git_main_branch)'


alias gr='git remote'
alias gra='git remote add'
alias grrm='git remote remove'
alias grmv='git remote rename'
alias grset='git remote set-url'
alias grup='git remote update'

alias gst='git status'