# 个人 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 + 目标字符

  1. Vim 插件中勾选开启 EasyMotion
  2. open user setting(json)配置快捷键 s 替换 \\s 配置
"vim.normalModeKeyBindingsNonRecursive": [{
  "before": [ "s" ],
  "after": [ "<leader>", "<leader>", "s" ]
}],
"vim.visualModeKeyBindingsNonRecursive": [{
  "before": [ "s" ],
  "after": [ "<leader>", "<leader>", "s" ]
}]
💗 博主正处于裸辞待业状态,欢迎 商务合作 💗

相关文章

Vibe Coding 将程序编成黑盒,怎么办?

现在的开发者不再编写代码、review 代码,即使 SDD(Spec 驱动 Agent 开发)工作流也会面临类似问题 —— 开发者将逐渐放弃阅读 spec 文档。 如果 Agent 将开发者驱逐出编程工作流的所有阶段,那么程序终将成为黑盒,程序的可靠性、可维护性会成为新的问题。 解决办法 —— 我的开源项目 YorZ(柚子) 起因 Agent 会将开发 ...

终端开发环境搭建

都进入 AI 时代了啊啊啊啊,为什么还要花时间折腾上古时代的开发工具? 因为太好玩,实在忍不住。。。 Yazi Yazi 是一个终端文件管理工具,这是它的 logo。 平时总是不知不觉就打开了多个 Finder 窗口进行文件操作 ...

ZingAI.video 在线口播视频剪辑

ZingAI.video 字影是采用前沿 Web 技术构建的口播视频剪辑工具,欢迎体验 背景 我发现自己消费的视频基本都是口播类视频,且 AI 生成的视频绝大多数也是这类视频。 口播类视频并不是指狭义的主播(或数字人)念稿子,它的典型特征是传达的信息以文字语音为主,图像信息为辅的视频; ...

在终端(Terminal)中快捷使用代理的方法

背景 每次在终端中 打开/关闭 代理都要经历以下几个步骤 在代理软件(如 Clash)中复制终端代理命令 粘贴到 终端 中,然后执行 执行需要访问外网的命令(如安装依赖、下载外网镜像) 关闭当前终端,让代理配置失效 假设你的代理工具启用的端口是2233,那么从代理工具复制的终端代理命令应该是 export https_proxy=h ...

Web 网页自集成 HTTP 代理方案

前言 大部分程序员,想必都有会一个常用的抓包代理工具; 但在座的各位,可曾见过这样一款集成在 Web 应用中的代理工具? 它是明显区别于传统代理工具的,有以下特性: 零安装,零配置,Web 点击即用、APP 扫码即用;_(不 ...

在Termux中运行web项目

Termux是什么 官网 > Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed au ...

VuePress 集成第三方评论模块

VuePress 是一个 Vue 驱动的静态网站生成器,用来写文档的体验很好,本站就是基于 VuePress 的。 VuePress 官方正在开发针对博客的优化功能Blog Support roadmap,已经有人在喊建议集成 disqu ...