wsug
1
emacs不能识别caps lock输入的大写字母和shift输入的大写字母(而vsc可以),把 shift当快捷键用时 就导致caps lock也不能输入大写字母,caps lock按下时就成了类似vi在输入模式和快捷键之间切换的效果。
但实践下来感觉shift感觉已经很好用了,没必要在把caps lock也占了,如何才能在不影响caps lock正常输入大写字母的同时让shift可当快捷键用呢?
有 tg 群群友已给出思路 ,我按这个方法才发现有一般键盘上不存在而emacs可以识别的键,如F13-F24。
这样我用外部工具把shift+abcde…xyz
识别后转为F13-F24,发给emacs,emacs在对这些键绑定操作函数就可以在不影响caps lock正常输入大写字母的同时让shift当快捷键用了
我按这个思路继续下去结果就是F区的功能键不够用了,F13-F24有12个,而shift+字母有26个,F1-F12
有其它mode会用到,最好还是不要动,即使动了快捷键键数量也还是不够。
不知道有没有办法可以让F25-F38键能用,或者还有什么键是emacs可以识别而一般键盘不会占用到的
wsug
3
感谢回复,发现是我把问题想复杂了,可以就绑定到emacs默认绑定的键就行,绑定到emacs默认绑定的键还有一个好处就是emacs端不用作设置就可以直接把shift当快捷键用,相关ahk代码如下
#HotIf WinActive("ahk_class Emacs") ;;emacs之内有效
+a::send "^a"
+b::send "^b"
+c::send "^c"
+d::send "^d"
+e::send "^e"
+f::send "^f"
+g::send "^g"
+h::send "^h"
+i::send "^i"
+j::send "^j"
+k::send "^k"
+l::send "^l"
+m::send "^m"
+n::send "^n"
+o::send "^o"
+p::send "^p"
+q::send "^q"
+r::send "^r"
+s::send "^s"
+t::send "^t"
+u::send "^u"
+v::send "^v"
+w::send "^w"
+x::send "^x"
+y::send "^y"
+z::send "^z"
#HotIf
ctrl键一样要用,没必要和shift设的按键保持完全一致,不和ctrl行为保持一致shift开头的键我设了大概10个左右,单独对这10个左右的键在emacs端绑定就行,这样F13-F24范围内的键就刚好够用