之前我们定义了各种各样的快捷键,有为了增强功能自定义的,有针对插件的。数量一多有的时候就不那么容易记忆了。要是每次要去配置文件找我定义了哪些快捷键肯定会影响使用的。
本篇将要介绍一个插件,它是快捷键的一个词典,可以快速找到我们想要的快捷键
使用 packer 的小伙伴可以使用如下代码进行安装
use {"folke/which-key.nvim"}
然后我们新建一个文件作为它的配置文件,并写入如下代码
require("which-key").setup({})
这个时候我们使用一些快捷键并且在中间停顿一下就可以看到它已经给出了相关的提示了
默认的配置已经足够好了,基本不需要我们对它的行为做某些配置。它真正强大的地方在于,我们可以自己注册快捷键到显示中去。有时候不知道什么原因某些插件或者我们自定义的快捷键无法显示时可以使用这个方法注册到显示中。
假设我们现在有一个
register(mappings, opts)
它接收两个 table 参数,第一个表示需要注册的快捷键绑定,第二个是注册时的一些属性。
mappings 中的字段主要用来定义快捷键以及它的显示文字,后面我们通过例子来体会它的具体参数
opts 主要有下面几个参数
接下来我们通过几个例子来体会它的用法
local wk = require("which-key")wk.register({ f = { name = "myvimrc", -- 指定该快捷键组的名称 f = {":edit $MYVIMRC", "Open vimrc"}, -- 创建新的快捷键绑定 s = {":source $MYVIMRC", "reload vimrc", noremap = true}, -- 也可以只显示一个标签而不绑定到具体的快捷键 e = {"New File"} }}, {prefix = ""})
通过上面的代码我们绑定了
我们将这个改写一下
wk.register({ [""] = { f = { name = "myvimrc", -- 指定该快捷键组的名称 f = {":edit $MYVIMRC", "Open vimrc"}, -- 创建新的快捷键绑定 s = {":source $MYVIMRC", "reload vimrc", noremap = true}, -- 也可以只显示一个标签而不绑定到具体的快捷键 e = {"New File"} } }}, {silent = true, noremap = true})
或者也可以改写为这样
wk.register({ ["f"] = { name = "myvimrc", f = { ":edit $MYVIMRC", "Open vimrc" }, s = { ":source $MYVIMRC", "reload vimrc", noremap = true }, n = { "New File" }, },})
wk.register({ ["f"] = { name = "myvimrc" }, ["ff"] = { ":edit $MYVIMRC", "Open vimrc" }, ["fs"] = { ":source $MYVIMRC", "reload vimrc", noremap = true }, ["fn"] = { "New File" },})
到这里相信各位小伙伴应该已经明白了如何使用 mappings这个字段,它外层是每次按下的按键,最内层则用来绑定具体的命令和提示时显示的具体内容。一般来说我们用不到这个东西,但是如果希望动态地修改这个显示的内容,例如把快捷键归类,这个就很有用了。
我们可以对照一下之前定义的快捷键,发现分屏相关的快捷键并没有显示出提示,这个时候我们就可以将它添加到对应的快捷键中
wk.register({ ["s"] = { name = "split window", v = { ":vsp", "vertical split window" }, h = { ":sh", "horizontal split window"}, c = { ":close", "close this window"}, o = { ":only", "close all but this window"}, },}, {noremap = true, silent = true})
如果你不喜欢它用英文显示,还可以尝试 将所有英文提示改为中文,这是一个浩大的工程,有兴趣的小伙伴可以尝试一下
有时候我们不知道某个功能具体绑定到哪个键上面了,甚至不知道它有这个快捷键绑定,这个时候可以使用 :WhichKey 这个命令来检查一下。它默认有2个参数
好了,本篇的内容到此就结束了。
留言与评论(共有 0 条评论) “” |