2个不稳定版本
0.2.0 | 2023年12月14日 |
---|---|
0.1.0 | 2023年12月14日 |
#104 in 文本编辑器
19KB
378 行
Hop:将提示功能带到Kakoune的选择中
目录
此二进制文件旨在与Kakoune编辑器一起使用,并基于用户的当前选择提供提示功能。工作流程很简单
- 在您的缓冲区中做出选择。
- 通过提供选择在
%sh{}
块中调用二进制文件——通常通过$kak_selections_desc
。 - 提示出现。您可以按提示的顺序按键以减少提示。
- 通常,您会减少直到只剩下一个提示;在这种情况下,提示功能被禁用,您将只剩下单一的选择。但是,您可以随时通过按
<esc>
键来保留提示功能。
安装
目前,唯一的安装渠道是https://crates.io。它需要安装cargo
。
cargo install hop-kak
配置
Kakoune选项
在尝试使用Hop之前,您必须包含hop.kak文件。它包含
hop_ranges
选项。用于使用标签突出显示您的缓冲区。hop_label
面定义。您可以随意覆盖默认设置。
另一种方法是,在您的kakrc
中用hop-kak --init
来自动注入hop.kak
文件
evaluate-commands %sh{ hop-kak --init }
--init
仅在hop-kak
编译时带有init
功能时可用,默认情况下是启用的。
hop-kak
选项
hop-kak
— 构建的二进制文件 — 没有任何配置文件。相反,它通过传递 CLI 参数进行配置
-k --keyset
:要使用的关键集。这取决于你的键盘布局。请明智地选择!它不能有任何重复的键,并且按键按重要性排序;即,更容易到达的按键应该排在前面。- 对于 QWERTY,我们推荐
TODO
。 - 对于 AZERTY,我们推荐
TODO
。 - 对于 BÉPO,我们推荐
etisura,cnovpdélxqygàhfbjz
。
- 对于 QWERTY,我们推荐
-s --sels
:要提示的选择。你应该始终传递$kak_selections_desc
。-l --labels
:之前生成的标签。你永远不需要使用这个参数。-z --key
:用于减少的键。你永远不需要使用这个参数。--handle
:将光标放在选择的部分;锚点或光标。默认为锚点。
用法
这个二进制文件承担的责任很少,这样人们就可以在更广泛的情况下使用它。因此,你将不得不围绕 hop-kak
做一些工作。 hop-kak
通过读取选择、突出显示它们并让 Kakoune 等待按键来终止或减少提示来工作。如果你决定减少提示,hop-kak
将过滤你的选择并将它们减少到映射新的提示集。因此,hop-kak
可以基本上看作是 Kakoune 选择的 trie 减少器。它是可组合的。你传递给它初始选择,然后它会交互式地过滤它们。
无论你的选择是什么,你总是想要使用以下命令开始跳跃会话
eval -no-hooks -- %sh{ hop-kak --keyset "<YOUR_KEYSET_HERE>" --sels "$kak_selections_desc" }
例如,使用 bépo 键盘布局,你可以将 è
键映射为使用当前选择开始跳跃
map global normal è ':eval -no-hooks -- %sh{ hop-kak --keyset "etisura,cnovpdélxqygàhfbjz" --sels "$kak_selections_desc" }<ret>'
然后,就取决于你自己来设计你自己的工作流程了!
工作流程示例
默认键集
如果你打算有多个工作流程,你应该有一个选项来设置你的键集。例如,对于 bépo
declare-option str hop_kak_keyset 'etisura,cnovpdélxqygàhfbjz'
更好的选择
将一个键映射为选择缓冲区的可见部分是非常有用的。 <a-%>
是一个好的候选,因为 Kakoune 目前没有将其映射
map global normal <a-%> ':execute-keys gtGbx<ret>'
这将有助于创建选择。我们假设你下面有这个绑定。你也可以为此创建一个命令
define-command hop-kak %{
eval -no-hooks -- %sh{ hop-kak --keyset "$kak_opt_hop_kak_keyset" --sels "$kak_selections_desc" }
}
选择并提示可见单词
使用 <a-%>
映射,你可以使用 <a-%>s\w+
选择 单词,然后按你的映射开始跳跃。
减少键数和控制键的更好方法是创建一个像这样的小函数
define-command -override hop-kak-words %{
exec 'gtGbxs\w+<ret>:eval -no-hooks -- %sh{ hop-kak --keyset "$kak_opt_hop_kak_keyset" --sels "$kak_selections_desc" }<ret>'
}
并将其映射到你的键;例如,SPC è
map global user è :hop-kak-words<ret>
依赖项
~1.7–2.3MB
~41K SLoC