@tag:: #快捷键
值得尝试的新工具
- ag: 比grep、ack更快的递归搜索文件内容。
- mycli: mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。
- shellcheck: shell脚本静态检查工具,能够识别语法错误以及不规范的写法。
- cloc: 代码统计工具,能够统计代码的空行数、注释行、编程语言。
Text Editor
Vim
移动/跳转光标:
HJKL: ← ↓ ↑ →0: 移动光标至本行开头$: 移动光标至本行结尾w: 移动到下个单词( a.Properties算两个单词)W: 移动到下个单词(空格分隔的单词)3w: 光标向前移动3个单词b: 移动到上个单词, 如同wB: 移动到上个单词, 如同Wgg: 移动到第一行G: 移动到最后一行:133: 跳到第133行g;在最近所有修改处跳转'.跳转到最后修改的那一行
编辑:
i: 在当前光标前面插入I: 在当前单词开头插入a: 在当前光标后面插入A: 在当前单词尾部插入x: 删除光标处字母d0: 删除到行首d$: 删除到行尾dd: 删除光标所在行dw: 删除光标所在单词>>: 增加缩进<<: 减少缩进
搜索:
fX: 在本行搜索XFX: 在本行搜索X(向后搜索)/Word: 全文搜索?Word: 全文搜索(向后)
粘贴/复制:
y: 复制选中的yy: 复制整行p: 粘贴"+y: 复制到+寄存器"+p: 粘贴+寄存器的内容
补全:
CTRL + N: 智能补全CTRL + X,CTRL + K: 根据字典补全CTRL + X,CTRL + U: 用户自定义补全CTRL + X,CTRL + F: 文件名补全
其他:
v: 进入选择模式Shift + v: 进入选择模式(行)Ctrl + v: 进入选择模式(列)
vimdiff:
- 启动:
vimdiff file1 file2 - 前一个:
[ + C - 后一个:
] + C - 在窗口间切换:
CTRL + WW - 将当前复制到另一个:
dp, dp 意为 diff “put” , 也可以使用命令:diffput - 将另一个复制到当前:
do, do 意为 diff “obtain” , 也可以使用命令:diffget, 之所以不用dg,是因为dg已经被另一个命令占用了 - 重新比较:
:diffupdate
VSCode
- 快速打开文件:
⌘ + P - 列出工程中的所有符号:
⌘ + T - 列出当前文件中的符号:
⌘ + shift + O
- 列模式:
shift + option + ↕️ - 连续选中光标所在的单词:
⌘ + D
Sublime Text
Shortcut key:
⌘ + P: 快速打开文件⌘ + R: 打开纲要列表⌘ + D/G: 同步编辑/类似vim#and*⌘ + M: 括号跳转⌘ + F: Enter查找下一个,Shift + Enter查找上一个⌘ + X: 删除当前行⌘ + L: 选择整行, 按住⌘继续按L则持续选择⌘ + Shift + L: 多行选中后, 同时编辑这些行⌘ + 左键点击: 多处同时编辑Ctrl + G: 跳转到行Shift + Tab: 折叠, 在看很长的Markdown文档时有用
Plugin:
- Encoding: GBK Encoding Support, CovertToUTF8
- Syntax Checker:
- Phpcs for sublime2 (http://alfred-long.iteye.com/blog/1668074)
- SublimeLinter(https://github.com/SublimeLinter) 检测代码语法错误,支持C/Java/Python:
- sublimelinter-php
- sublimelinter-py
- sublimelinter-json
- sublimelinter-jscs
- sublimelinter-cppcheck
- SublimeCodeIntel(https://github.com/SublimeCodeIntel/SublimeCodeIntel) 代码补全, 定义跳转;
- Alignment:格式化代码Ctrl+Alt+A;
- SublimeCodeIntel:
- Jump to definition = Alt+Click
- Jump to definition = Control+Super+Alt+Up
- Go back = Control+Super+Alt+Left
- Manual Code Intelligence = Control+Shift+space
neovim
install neovim on windows:choco sources add -source https://www.myget.org/F/equalsraf/ -name equalsraf
choco install -pre neovim-qt
IDE
IntelliJ IDEA
Editing(编辑)
Alt + Enter: 显示建议/导入包 ⭐️Control + Space: 基本的代码补全(补全任何类、方法、变量)⭐️⌘ + J: 插入自定义动态代码模板⌘ + Alt + J: 弹出模板选择窗口,将选定的代码使用动态模板包住⌘ + Alt + T: 把代码用if, for等代码块包起来(当前行或选定的行)Ctrl + Alt + O: 优化import ⭐️⌘ + Alt + L: 格式化代码 ⭐️⌘ + /: 注释/取消注释与行注释⌘ + 加号: 展开当前代码块⌘ + 减号: 折叠当前代码块⌘ + Shift + 加号: 展开所有代码块⌘ + Shift + 减号: 折叠所有代码块
Search/Replace(查询/替换)
Shift + Shift: Search anywhere ⭐️Ctrl + N,Ctrl + Shift + N: 查找类, 查找文件Ctrl + F,Ctrl + Shift + F: searchF2或Shift+F2: 上个/下个错误F3或Shift+F3: 上个/下个查找Alt + F7: find usage
Navigation(导航)
⌘ + Alt + ←/→: Navigate back/forward⌘ + E: 显示最近打开的文件记录列表⌘ + F12: 弹出当前文件结构Ctrl + H: 显示类的继承层级(列出上下继承结构) ⭐️⌘ + Shift + H: 显示方法继承层级(例如显示某个抽象类的所有实现) ⭐️Ctrl + Alt + H: 显示调用层次结构 ⭐️
VCS/Local History(版本控制/本地历史记录)
Command + K: 提交代码到版本控制器 ⭐️
Refactoring(重构)
Shift + F6: 重构
UI(界面)
⌘ + 1: Project⌘ + 7: Structure⌘ + 8: Hierarchy⌘ + 9: Version Control
Plugins(插件)
- Lombok
- Code iris: 显示类的Diagrams
- mongo4idea
Android Studio
- 格式化代码
⌘ + Option + LCtrl + Alt + L - 删除行
⌘ + DeleteCtrl + Y - 快捷生成结构体
⌘ + Option + TCtrl + Alt + T - 快捷覆写方法
⌘ + OCtrl + O - 快捷定位到行首/尾
⌘ + Left/RightCtrl + Left/Right - 文件方法结构
⌘ + F12Ctrl + F12 - 查找调用的位置
Ctrl + Option + HCtrl + Alt + H
PHPStorm(Win)
Ctrl + j常用的代码片段Ctrl + Alt + 左右方向键,定位到上一次编辑的位置Ctrl + F12,快速查看当前文件的所有方法Ctrl + Alt + L,格式化代码Ctrl + N,根据类名称查找Ctrl + Shift + N,根据文件名查找
Eclipse(Win)
快捷键:
Alt+/: 补全Ctrl+1: 快速修复建议Ctrl+D: 删除当前行Ctrl+Del: 删单词, 类似VIm的dawCtrl+E: 打开的标签之间切换Ctrl+M: 最大化当前的Edit或View, 配合F12(编辑窗口获得焦点), 可以立刻最大化代码编辑栏Ctrl+L: 定位在某行Ctrl+K: 选中的单词, 相当于Vim的#, 反向Ctrl+Shift+KCtrl+Q: 定位到最后编辑的地方Ctrl+O: 快速显示 OutLineCtrl+T: 快速显示当前类的继承结构Ctrl+Shift+P: 匹配括号Ctrl+Shift+G: 查找调用F2: 显示提示F3: 跳转定义F4/Ctrl+O: 打开继承, 只能看extends, 不能看implementsCtrl+H: 搜索Ctrl+Alt+H: 调用Ctrl+Shift+R: 搜索工程中的资源文件Ctrl+Shift+T: 搜索类(包括工程和关联的第三jar包)Alt+Shift+R: 自动的重命名一个类Alt+Shift+I: 自动内联选中的属性/方法Alt+Shift+j: 插入当前类/方法的注释Ctrl+/: 对选中的部分进行注释Ctrl+Shift+/: 对选中的部分块状注释Ctrl+Shift+F: 格式化代码Ctrl+Shift+P: 匹配括号
插件:
- m2e
- Egit
terminal(终端)
Ctrl – a:移到行首Ctrl – e:移到行尾
screen
Screen一个”会话”包括若干Windows, 每个Windows可被分割, 每个分割的区域可再创建新的Window
QuickStart
screen -ls查看已有的sessionscreen -r id连接已有的sessionscreen -S xx创建xxx为名字的sessionc-a"查看已打开的shellc-aS上下分割当前Window, 分割出来的新Window没有运行任何Shellc-aTab切换到新Windowsc-ac创建新shellc-a"查看&切换已经打开的shellc-ad保存session并退出c-ak杀死Window, 不可恢复
Window
c-ac: 创建一个windowc-a": 查看已创建的windows列表c-ad: deattach 整个会话, 所有Windowsc-ak: 关闭当前windosc-aTab: 切换c-an/p: switchc-a0~9: 按序号切换到window
Split
c-aS: 上下分割, c-a tab移动到下面的窗口, 然后c-a c创建新的c-a|: 垂直分割
翻页&复制
c-a[: 进入复制模式, 之后可以像vim里一样操作hjkl,ctrl-b,ctrl-f, 翻页- 进入复制模式后, 空格开始选择, 空格结束
Session
screen -S test1: 创建名为test1的会话screen -ls: 查看deattach的会话screen -r id: 重新连接screen -d -r id: 如果上面的命令提示已经attach, 可以加-d参数先deattach再attachscreem -X -S session_id quit: 退出session, -X参数是执行的意思,执行quit命令.rm -rf /var/run/screen/S-xxx: 删除会话
tmux
- `tmux new-session -s “sessionX” 创建会话
- `tmux attach -t sessionX 恢复会话
c-b d: 再输入tmux attach可以恢复会话c-b ": 上下新建一个面板c-b %: 左右新建一个面板c-b 方向: 面板切换c-b Page: 进入翻页模式,此模式下可以用翻页键,q是退出翻页模式c-b :: 输入setw mode-mouse on设置鼠标滚轮[复制模式]粘贴模式
svn
svn add filesvn commit -m "xxx": 提交修改svn up: 更新到最新版本svn revert file: 没commit时的撤销svn logsvn merge -r 28:25 file: 从当前28回滚到25
git
=> Git速查手册