# 个人 VSCode 高频快捷键总结
# vscode 默认快捷键
按键 | 描述 | 提示 |
---|---|---|
cmd+shift+p | 命令搜索 | 一切命令、指令的入口,不常用或没有快捷键的指令,可以搜索名称然后触发,尝试搜索 open |
tab控制 | ||
cmd+n | 新建tab页 | 常用于记录临时信息 |
cmd+w | 关闭tab页 | 关闭临时tab会有是否保存确认,Mac下cmd+d不保存(discard) |
cmd+p | 搜索、打开文件 | 免去鼠标寻找、点击 |
ctrl+tab | 快速切换tab页 | 免去鼠标寻找、点击 |
代码编辑 | ||
cmd+d | 选中单词 | 选中单词后再按下cmd+d可以批量选择、编辑 |
cmd+[, cmd+] | 往前,后缩进 | |
安利vim插件 | 代码编辑基本使用vim方案,查看下文 | |
代码查找 | ||
cmd+f | 当前页面查找关键字 | |
cmd+shift+f | 全局查找关键字 | 全局搜索结果一般比较多,可以考虑自定义快捷键切换上下结果 |
cmd+shift+o | 当前文件搜索关键符号 | 能快捷找到函数、class、变量名等 |
cmd+t | 全局搜索关键符号 | 能快捷找到函数、class、变量名等 |
ctrl+ - | 光标位置回退 | |
ctrl+shift+ - | 光标位置前进 | |
Panel控制 | ||
cmd+b | 开关文件列表侧栏(side bar) | |
cmd+shift+| | 在文件列表侧栏定位当前文件 | 自定义快捷键,看下文 |
# 命令示例
先 cmd+shift+p 打开命令输入框
所有命令都支持模糊匹配输入关键字符(如首字母)更快捷
rename symbol; 重命名变量名
reload window; 重新加载vscode当前窗口
open recent; 切换到最近打开过的项目
markdown: open preview to the side;
# 自定义快捷键示例
cmd+shift+p,输入open user setting(json)
添加以下配置
[{
"key": "shift+alt+n",
// 全局搜索,定位到下一个结果
"command": "search.action.focusNextSearchResult",
"when": "hasSearchResult"
}, {
"key": "shift+cmd+\\",
"command": "workbench.files.action.showActiveFileInExplorer"
}]
# Vim 插件常用快捷键
略过常用单按键控制,如上下左右(hjkl)
按键 | 描述 | 提示 |
---|---|---|
代码编辑 | ||
yy | 复制行 | 重复按键,即是操作当前行 |
yw | 复制单词 | |
dd | 删除行 | |
dw | 删除单词 | 第二个键表示操作范围,w:单词 |
da{ | 删除最近一层{}的内容,包含括号 | around是通用控制符 |
di[ | 删除最近一层{}的内容,不包含括号 | inside是通用控制符 |
cc | 删除行,并进入编辑状态 | |
cw | 删除单词,并进入编辑状态 | |
cat | 删除html标签,进入编辑状态 | tag对应标签,通用 |
ci` | 删除``号的内容,进入编辑状态 | |
ya' | 复制光标所在的字符串,包含' | |
yit | 复制html标签内容,不包含标签本身 | |
cs'" | 将光标所在的'替换成" | 后两位('")可以是其他标记符号'"`{[< |
cs[{ | 将最近一层[]替换成{} | |
光标移动 | ||
gd | 跳转变量定义 | |
sx | 高亮显示可视区域内所有x字符的位置 | x可以是任意字符,看下文EasyMotion配置 |
zz | 光标滚动到屏幕中间 | |
gg | 光标移动到文件顶部 | |
ctrl+o, ctrl+i | 光标后退,前进 | |
* | 定位到光标所在单词,下一次出现位置 | |
n | 查找下一个 | |
N | 查找上一个 | |
% | 在最近一层括号开始闭合位置跳转 | 括号:()[]{} |
EasyMotion配置
EasyMotion (opens new window) 目的是将光标快捷移动到可视区域内的任何位置
使用非常高频,但默认情况下,需要按两次 \
+ s
+ 目标字符
,
所以做以下配置后,只需要按 s
+ 目标字符
- Vim 插件中勾选开启 EasyMotion
- open user setting(json)配置快捷键 s 替换 \\s 配置
"vim.normalModeKeyBindingsNonRecursive": [{
"before": [ "s" ],
"after": [ "<leader>", "<leader>", "s" ]
}],
"vim.visualModeKeyBindingsNonRecursive": [{
"before": [ "s" ],
"after": [ "<leader>", "<leader>", "s" ]
}]