帮助高效工作的快捷键

主要介绍Idea、Vim等软件的快捷键使用

IDEA

IDEA文件操作

Command + E 跳转上一个文件

IDEA跳转操作

Alt + 鼠标左键(在mac键盘上是Option + Shift + 鼠标左键)可以复制光标。
Option + 空格:快速浏览方法定义
Command + B 跳转进入方法实现(对接口方法要跳2次)
Command + Option + B 跳转进入方法实现(对接口方法直接选择后跳转,只用跳1次)

选中代码块后Option+Shift+方向键⬆️/⬇️:整体移动代码块

IDEA文本操作

选择

Alt(Option) + Up: 不断扩大选择范围的选择

删除

删除至单词尾:Ctrl+Delete(Linux/Win)/ Option+Fn+Delete(macOS)
删除至单词首:Ctrl+Backspace(Linux/Win)/Option+Delete(macOS)

如果和默认设置冲突了,可以在IDEA中的keymap里设置一下

编辑

将多行文本合并为一行:选中文本后,点击 编辑->Join Lines

Vim/IdeaVim

移动光标/跳转

移动光标主要在Normal和Visual模式下进行。

基础移动方式

1、按字符移动:j下,k上,h/空格左,l右
2、按单词移动:
先介绍一下Vim对狭义单词和广义单词的区分,狭义单词由26个英文字母的大小写、数字或下划线组成的,和C语言对变量的定义是一致的。如果遇到其他的相邻非空白符组合,则也算一个狭义单词。广义单词则包括除空白符之外的相邻字符组成。
w移动下一个狭义单词首字母
W移动至下一个广义单词首字母
e移动至当前狭义单词末尾字母,如果已经在末尾字母则移动至下一个狭义单词的末尾字母
E移动至当前广义单词末尾字母,如果已经在末尾字母则移动至下一个广义单词的末尾字母
b往回移动至狭义单词首字母,如果已经在首字母则移动至上一个狭义单词首字母
B往回移动至广义单词首字母,如果已经在首字母则移动至上一个广义单词首字母
ge移动至上一个狭义单词末尾字母
gE移动至上一个广义单词末尾字母

匹配型移动方式

1、行内匹配字符跳转:
f+单字符 移动至同一行的下一个该字符处,f表示for。查找过程中用分号;可以移动至下一个查找
t+单字符 移动至同一行的下一个该字符前,t表示to

跳转到指定行列

normal模式下跳转到第80行第16列:80G16|
命令模式下::norm 80G16|

行级别移动

^移动至非空白符行首
0 移动至行首
$ 移动至行尾

括号匹配移动

\% 移动至匹配括号处

方法级别移动

[m 跳转到方法的第一个{ 处,对于Java尤其有用。

比如选中整个方法就可以是:

Step 1: 光标在方法的某个位置

Step 2:按[m跳转至方法的第一个{处

Step 3:按V选中方法第一行

Step 4:按%选中整个方法

一些场景移动方式

gi移动至上一次编辑的位置

插入模式下想移动

要么用方向键移动,
如果想用Normal/Visual模式下的移动,但是又想移动完后重新回到插入模式,那么用ctrl+o,ctrl+o+移动命令相当于Esc进入Normal模式+移动命令+i

选择/选中

很多情况下,visual模式结合跳转功能,就可以实现选中的效果

查找和替换

详见桌面鼠标垫

模式匹配删除

Visual模式下输入: 可进入Visual命令模式

vimrc设置set hlsearch incsearch可以高亮显示搜索的匹配

删除空行

1
:g/^$/d

其中^表示行首,$表示行尾

删除空白行(由空白符组成的行)

1
:g/^\s*$/d

删除@Override注解的行

1
:g/Override/d

删除一对括号

前提:安装Surround插件

1
ds+你要删的括号

v模式下,使用S+需要wrap的符号

vim-exchange

常规模式用cx,Visual模式用X

A Tip

在匹配完一次后,vim会一直将匹配的字符串高亮,按Esc也没效果,这时候输入 :noh 就干净了

批处理

. 重复上次在normal模式下的操作

公式

action + range
如缩紧{}内的内容:>i{
修改””中的内容(包括”):ca"

IDEAVIM配置keymap

配置 ge:Go to Error

Copy and paste

1
2
:set paste
:set nopaste
1
set pastetoggle=<F3>
个人Windows系统下虚拟化方案调研 设计模式 之 MVC

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×