用户定义快捷键一般是用 C-c 当前导键(前缀?)
有没有可能让大写键代替这个 C-c呢(不考虑和ESC互换,大写时可以按 SHIFT代替),比如按一下大写键,再按任意一个字母执行一条command
搜索了下没有类似的回答,也许是个白痴到没人想问的问题?我来当吧,问下哈
ps:论坛里其他帖里有个楼层说emacs是检测不到大写,我也有点困惑,一些网页测试击键的页面不是都能检测到,Emacs反而不行?
用户定义快捷键一般是用 C-c 当前导键(前缀?)
有没有可能让大写键代替这个 C-c呢(不考虑和ESC互换,大写时可以按 SHIFT代替),比如按一下大写键,再按任意一个字母执行一条command
搜索了下没有类似的回答,也许是个白痴到没人想问的问题?我来当吧,问下哈
ps:论坛里其他帖里有个楼层说emacs是检测不到大写,我也有点困惑,一些网页测试击键的页面不是都能检测到,Emacs反而不行?
用其它软件把 capslock 映射成 super、hyper 之类的按键就行了
可以在 Emacs 外部用键盘映射工具把 capslock 的 click 映射成 ESC,hold 映射成 Control。
再在 Emacs 内修改 esc-map。这样一个实体按键就有了两重功能。
;; roam map
(general-create-definer roam-leader-def :prefix “;”)
(roam-leader-def 'normal 'override “;” 'org-roam-node-find)
(roam-leader-def 'normal 'override “f” 'deadgrep)
(roam-leader-def 'normal 'override “t” 'translate-at-cursor)
也许这就是你想要的效果. 也就是说, 点一次" ; ", 再点另一个键, 就运行一个函数.
没有,但 emacs 除了 C/M 还有 S(shift),H(hyper),A(alt),s(super)可以用。把大写键map过去就好w
请问映射过去后是不是就可以按一下 Hyper(不按;的原因是还会输入;号,而Hyper现代键盘都没有不用考虑冲突,就像
,跟着按一下 a,执行命令,就像下面这样【不过要改成通用的】
是的,这就是想要的效果,那怎么才能在一般的 buffer 里实现呢
高手能给个链接或示例吗
ps: 试了下linux下映射大写键为Hyper,还没验证成功
上面我那段也是抄别人的. 尽管里面有 org-roam-def, 这只是个符号, 可以换成 xyz 也是一回事儿, 配置是全局性的. 在一般的 buffer 里都有效.
因为我用 doom emacs, 所以正常情况下 “;” 不会和编辑状态下的 “;” 混淆. 且右手小拇指的 home key, 也极其省时省力. 简直是天人之作. 要为发明这个配置的同学点个大大的赞.
我觉得你的苦恼, 是因为不用 doom emacs, 哈哈. …
在 doom emacs 里面, 各种前导键的配置, 嗨到飞起.
我不用 Linux,用的 macOS。
vanila emacs 刚刚摸到一点点门,还是不doom了
; 号做前导符挺好的,输入法里也有用;号实现功能的,真需要输入;号时就按两次即可
估计不用 doom 实现是不是要自定义一个 mode,但又需要与其他 mode 合拍,这个还不会我
doom的所谓的"前导"键是配合 evil 和 general.el 实现的。你不用 evil 也可以用 general.el
谢谢思路,我去找找有没有相关资料
可以试一下 Linux 下的键盘映射工具
比如用 keyd 的话,可以这样配置
[main]
capslock = overload(layer(emacs-hyper), esc)
[emacs-hyper]
a = macro(C-x @ h a)
b = macro(C-x @ h b)
c = macro(C-x @ h c)
d = macro(C-x @ h d)
...
有个想法。直接用键盘映射工具把 Caps 映射成 C-c,其他啥都不变怎么样?