当前位置: 首页 > news >正文

在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键

Visual Studio Code 默认是关闭了 Markdown 的智能感知提示的(因为真的是不好用,尤其是其没有中文分词的情况下)。那么在没有智能感知提示的情况下如何快速插入代码片段呢?

可以使用快捷键!

本文介绍如何为代码片段绑定快捷键。


代码片段本没有快捷键相关的字段可供设置的,不过在快捷键设置中可以添加代码片段相关的设置。

首先,在 Visual Studio Code 中打开快捷键设置:

打开快捷键设置

选择手工编辑快捷键配置文件:

手工编辑快捷键配置文件

在配置文件中添加这些代码即可关联一个代码片段:

[
  {
    "key": "alt+p",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "langId": "markdown",
      "name": "Insert a post for blog.walterlv.com"
    }
  }
]

在这个配置中,alt+p 是我指定的快捷键,editor.action.insertSnippet 表示执行命令插入代码片段,生效条件为 editorTextFocus 及文本编辑器获得焦点的期间。

args 字段指定了两个值,作为对一个现有代码片段的引用。langId 是生效的语言 Id,name 是代码片段的名称。这个名称是我在 在 Visual Studio Code 中添加自定义的代码片段 中做的代码片段的名称。

保存,现在按下 alt+p 后就会插入指定的代码片段了。

事实上,args 也可以不是引用,而直接是代码片段的内容:

[
  {
    "key": "alt+p",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "@[TOC](walterlv 的博客目录)"
    }
  }
]

这样,也不需要事先定义代码片段了。

额外提及以下,Visual Studio Code 快捷键只能设置全局的而不能设置仅工作区生效,详情请看 load keybindings.json from .vscode dir if there is any ? · Issue #10708 · Microsoft/vscode。


参考资料

  • Creating your own snippets in Visual Studio Code
  • load keybindings.json from .vscode dir if there is any ? · Issue #10708 · Microsoft/vscode

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件)
  • 在 Visual Studio Code 中添加自定义的代码片段
  • 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限
  • 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能
  • git 如何更可靠地解决冲突?
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶
  • Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件)
  • 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能
  • 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator)
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性?
  • 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象?
  • WPF 中如何创建忽略 DPI 属性的图片
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • 【面试系列】之二:关于js原型
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • gf框架之分页模块(五) - 自定义分页
  • HTTP那些事
  • JavaScript类型识别
  • java中具有继承关系的类及其对象初始化顺序
  • js算法-归并排序(merge_sort)
  • Leetcode 27 Remove Element
  • Lucene解析 - 基本概念
  • PAT A1050
  • Swift 中的尾递归和蹦床
  • vue2.0项目引入element-ui
  • web标准化(下)
  • 成为一名优秀的Developer的书单
  • 分布式事物理论与实践
  • 跨域
  • 前端_面试
  • 与 ConTeXt MkIV 官方文档的接驳
  • 在Unity中实现一个简单的消息管理器
  • 阿里云移动端播放器高级功能介绍
  • ​MySQL主从复制一致性检测
  • ​Python 3 新特性:类型注解
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (C++20) consteval立即函数
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)springcloud实战之config配置中心
  • (二)斐波那契Fabonacci函数
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (离散数学)逻辑连接词
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四) Graphivz 颜色选择
  • (转) 深度模型优化性能 调参
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • *上位机的定义
  • .NET 命令行参数包含应用程序路径吗?
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET构架之我见
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc