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

vscode vim插件示例json意义

{
“vim.easymotion”: true,
“vim.incsearch”: true,
“vim.useSystemClipboard”: true,
“vim.useCtrlKeys”: true,
“vim.hlsearch”: true,
“vim.insertModeKeyBindings”: [
{
“before”: [“j”, “j”],
“after”: [“”]
}
],
“vim.normalModeKeyBindingsNonRecursive”: [
{
“before”: [“”, “d”],
“after”: [“d”, “d”]
},
{
“before”: [“”],
“commands”: [“:nohl”]
},
{
“before”: [“K”],
“commands”: [“lineBreakInsert”],
“silent”: true
}
],
“vim.leader”: “”,
“vim.handleKeys”: {
“”: false,
“”: false
},
// To improve performance
“extensions.experimental.affinity”: {
“vscodevim.vim”: 1
}
}
你贴的这段是 VSCode 的 settings.json 配置,针对 VSCodeVim 插件 做了定制,融合了 Vim 的高效操作与 VSCode 的现代体验。

下面我为你逐项详细解释配置含义,便于你理解和扩展:

🎯 基本功能开关

“vim.easymotion”: true,

✅ 开启 EasyMotion 支持,允许快速跳转到屏幕上的任意位置(如 \w 快速跳到某个单词)。

“vim.incsearch”: true,

✅ 开启“增量搜索”,你输入 /关键词 时会即时高亮匹配项。

“vim.useSystemClipboard”: true,

✅ 使用系统剪贴板(如 "+y 与系统剪贴板共享)—— 方便和外部程序复制粘贴。

“vim.useCtrlKeys”: true,

✅ 允许 Vim 使用 Ctrl 键绑定,例如 Ctrl-d 向下翻页。

“vim.hlsearch”: true,

✅ 启用搜索高亮。搜索关键字后会持续高亮,直到你取消高亮。

⌨️ 插入模式快捷键映射

“vim.insertModeKeyBindings”: [
{
“before”: [“j”, “j”],
“after”: [“”]
}
]

✅ 在插入模式中,连续输入 jj 会被映射为 (即退出插入模式),这是很多 Vim 用户喜欢的快速退出方式。

⌨️ 普通模式快捷键绑定(非递归)

“vim.normalModeKeyBindingsNonRecursive”: [
{
“before”: [“”, “d”],
“after”: [“d”, “d”]
},

•	✅ 绑定 <Space>d → dd(删除当前行)。即 leader 键是空格。

{
“before”: [“”],
“commands”: [“:nohl”]
},

•	✅ Ctrl+n 执行 :nohl,取消搜索高亮。

{
“before”: [“K”],
“commands”: [“lineBreakInsert”],
“silent”: true
}
]

•	✅ 按 K 执行 lineBreakInsert 命令(可能是自定义命令或插件命令),且不会在命令栏显示(silent)。

🔑 Leader 键设置

“vim.leader”: “”,

✅ 将 leader 键设为空格,便于类似快捷前缀操作(如 d)。

🔧 控制哪些快捷键由 Vim 插件处理

“vim.handleKeys”: {
“”: false,
“”: false
}

•	❌ 不由 Vim 插件处理 Ctrl+A、Ctrl+F:
•	Ctrl+A:通常在 VSCode 中是全选。
•	Ctrl+F:打开查找功能。

即它们保留为 VSCode 原生快捷键,不会被 Vim 插件拦截。

🧠 性能优化(让 Vim 插件占用独立线程)

“extensions.experimental.affinity”: {
“vscodevim.vim”: 1
}

✅ 把 Vim 插件分配到独立的渲染线程(Affinity 1),避免卡顿(实验性设置,适合大型项目或老机器)。

✅ 总结你这份配置的用途
• 兼容 Vim 操作,又保留 VSCode 原生快捷键(如 Ctrl+F)。
• 加强搜索体验(高亮、增量)。
• 提升输入体验(jj 退出插入模式)。
• 使用空格作为 leader 键,配合自定义命令更高效。
• 提升性能,适合大型项目或频繁编辑。

🔧 你可以继续添加的建议项

如果你用得更多,可以加入:

“vim.visualModeKeyBindings”: [
{
“before”: [“”, “y”],
“after”: [“”+", “y”]
}
]

实现:在可视模式下按 y 复制到系统剪贴板。

如果你有具体快捷键或某些 VSCode 原生操作和 Vim 冲突,我可以进一步帮你定制 vim.handleKeys 或映射方案。你是否还有不习惯或冲突的按键?我可以帮你调好。

http://www.dtcms.com/a/264801.html

相关文章:

  • C++ 第四阶段 文件IO - 第一节:ifstream/ofstream操作
  • JavaScript---查询数组符合条件的元素
  • 解决 npm install canvas@2.11.2 失败的问题
  • 【公司环境下发布个人NPM包完整教程】
  • SPI、I2C和UART三种串行通信协议的--------简单总结
  • NLP:文本张量表示方法
  • 【安全工具】SQLMap 使用详解:从基础到高级技巧
  • 【字节跳动】数据挖掘面试题0001:打车场景下POI与ODR空间关联查询
  • C++实现状态机
  • 20250703|Leetcodehot100之739【】今天计划
  • Linux环境下使用 C++ 与 OpenCV 实现 ONNX 分类模型推理
  • 洛谷P2119 [NOIP 2016 普及组] 魔法阵【题解】【前缀和优化】
  • Java 大视界 -- Java 大数据在智能医疗健康管理中的慢性病风险预测与个性化干预(330)
  • Javaee 多线程 --进程和线程之间的区别和联系
  • nvm:NodeJs版本管理工具下载安装与使用教程
  • macOS挂载iOS应用沙盒文件夹
  • 飞算 JavaAI 智控引擎:全链路开发自动化新图景
  • 【字节跳动】数据挖掘面试题0003:有一个文件,每一行是一个数字,如何用 MapReduce 进行排序和求每个用户每个页面停留时间
  • 橡胶硬度计在不同领域中的应用
  • mybatis考试
  • 无人机一机多控技术的核心要点
  • 亿级物联网MQTT集群:OpenResty深度优化实践
  • Docker for Windows 设置国内镜像源教程
  • 基于spark的航班价格分析预测及可视化
  • v3 中的storeToRefs
  • AWS WebRTC:根据viewer端拉流日志推算视频帧率和音频帧率
  • uniapp实现图片预览,懒加载
  • 数据分类分级系统的建设思路
  • Rust 安装使用教程
  • 【已解决】执行conda init提示No action taken.