qmk.nvim 使用教程
qmk.nvim Format qmk and zmk keymaps in neovim 项目地址: https://gitcode.com/gh_mirrors/qm/qmk.nvim
1. 项目介绍
qmk.nvim
是一个 100% 基于 Lua 的 Neovim 插件,专门用于格式化 QMK 和 ZMK 键盘映射。该项目广泛应用于机械键盘和爱好者键盘的开发中。其主要功能包括自动对齐键盘映射、生成键盘映射的注释字符串,并支持使用内联 JSON 注释进行快速修改。此外,qmk.nvim
还支持 QMK 和 ZMK 两种键盘映射格式,尽管作者推荐使用 keymap-editor
。
2. 项目快速启动
安装
使用你喜欢的包管理器安装 qmk.nvim
,例如 packer.nvim
:
use { 'codethread/qmk.nvim', config = function()
---@type qmk.UserConfig
local conf = {
name = 'LAYOUT_preonic_grid',
layout = {
'_ x x x x x x _ x x x x x x',
'_ x x x x x x _ x x x x x x',
'_ x x x x x x _ x x x x x x',
'_ x x x x x x _ x x x x x x',
'_ x x x x x x _ x x x x x x',
}
}
require('qmk').setup(conf)
end }
配置
在 Neovim 中配置 qmk.nvim
:
local qmk = require 'qmk'
qmk.setup {
name = 'LAYOUT_preonic_grid',
comment_preview = {
keymap_overrides = {
HERE_BE_A_LONG_KEY = 'Magic',
}
},
layout = {
'x ^xx',
'_ x x',
'_ x x',
}
}
使用
保存文件后,键盘映射将自动对齐,并生成漂亮的注释字符串。
3. 应用案例和最佳实践
案例1:简单键盘映射
local qmk = require 'qmk'
qmk.setup {
name = 'Some_layout',
layout = {
'x x',
},
auto_format_pattern = nil,
comment_preview = {
position = 'none',
}
}
案例2:多配置应用
local group = vim.api.nvim_create_augroup('MyQMK', {})
vim.api.nvim_create_autocmd('BufEnter', {
desc = 'Format simple keymap',
group = group,
pattern = '*simple/keymap.c',
callback = function()
require('qmk').setup({
name = 'LAYOUT_preonic_grid',
auto_format_pattern = "*simple/keymap.c",
layout = {
'_ x x x x x x _ x x x x x x',
}
})
end
})
4. 典型生态项目
1. nvim-treesitter
nvim-treesitter
是一个用于 Neovim 的语法树解析器,qmk.nvim
依赖于它来解析 QMK 和 ZMK 的键盘映射文件。
2. keymap-editor
虽然 qmk.nvim
支持 ZMK,但作者推荐使用 keymap-editor
来处理 ZMK 键盘映射。
3. go-qmk-keymap
这是一个用于生成 QMK 键盘映射的工具,尽管目前仍处于 alpha 阶段,但它展示了如何使用 Neovim 的内置功能来处理复杂的键盘映射。
通过以上步骤,你可以快速上手并使用 qmk.nvim
来格式化和优化你的键盘映射文件。
qmk.nvim Format qmk and zmk keymaps in neovim 项目地址: https://gitcode.com/gh_mirrors/qm/qmk.nvim