新插件: minibuffer-modifier-keys 解放你的小指

今天我将 minibuffer-modifier-keyssniem 中拷贝出来了,现在 minibuffer-modifier-keys 不是 sniem 独有的了。

用法: 默认打开是输入状态,按空格后接内容也就是普通输入空格后再插入文字。按两次空格就进入或者退出 keypad 模式;可以用 , . / 进行切换快捷键前缀, ,C-.M-/C-M- ,如果输入的那个字符所对应的前缀和当前前缀相同,就直接输入;否则切换当前前缀。
插件通过 (minibuffer-modifier-keys-setup t) 启动。

链接:

欢迎使用

5 个赞

赞赞,这个思路太棒了

已经用起来了 :+1:

好办法,空格键比我用的 shift还要好按 ,要不是当初无法解决空格键长按的问题我可能也用空格键来部分取代ctrl了,shift也可以不用小指,而是中指和无名指一起像回车一样想按多长时间按多长时间。

按两次空格手指要抬起来一次,我觉得还是按着就不动长按舒服.

1 个赞

我个人还是不太习惯一直按着某个键,哈哈

最新提交修改了空格的行为。
一般情况下空格加其它字符相当于正常编辑。当 keypad 开启后,空格加 , , . 或者 / 将不会将其转化为前缀而是直接传入 keypad 。
比如要执行 C-. 就首先保证当前前缀是 C- (不是就输入 , 来修改) ,然后按下空格再按 . 即可。

当处于 keypad 中正在输入的时候,假如目前处于没有前缀的情况,比如 C-. ,想把它变成 C-. , ,就输入空格然后再输入 , 即可 (直接输入 , 的话会变成 C-. C-)。有前缀的话比如 C-x C- 时输入那三个前缀字符是不会转化的,就不需要空格。

解释一下,这里的 keypad 与 Meow 的 keypad 有所不同,这里的 keypad 除了第一次的输入之外默认是没有前缀的,要输入前缀需要通过输入 , , ./ 添加。 比如要执行 C-c C-o 就需要保证当前前缀是 C- ,然后输入 c,o 即可。可以通过 backspace 来删除一个字符或者前缀。

问一句,这样用不会有割裂感吗?

没有吧
反正我是没有什么感觉,唯一的感觉就是舒适。:joy:

最新提交更改了模式的逻辑。原本是打开 minibuffer 后直接进入 minibuffer-keypad-mode ,通过变量控制 keypad 的开启关闭。可这样有一个问题,就是原本的一些特殊的输入按键,比如 ivy 的 / ,在输入文件夹后输入 / 可以直接补全文件夹,但采用这个方式后想保留 ivy 的这个功能就很麻烦。

新版本中默认不开启 minibuffer-keypad-mode ,只是把 minibuffer 的空格键绑定为 minibuffer-keypad-mode-start-or-stop ,这样那些特殊的输入按键都保留了,还省去了一堆逻辑判断。然后按两下空格就开启模式了。操作和之前一样。

最新提交修复了 keypad 模式自动开启、开启后不能关闭的问题。

今天收到 MELPA 成员的建议,将包名改成了 minibuffer-modifier-keys ,请各位注意一下。

spacemacs能用嘛

应该是没什么问题的,你试试

插件已经上 MELPA 了