为emacs配置特殊快捷键,方便移动端使用
文章目录
序
或许是异想天开之类的,想在手机端能够通过ssh链接emacs使用。
不过,虽然termux能够有软键盘能够输入Ctrl之类的前置特殊键,但是,想在移动端使用Ctrl之类的快捷键进行操作太过麻烦。因此打算设置一些新的快捷键(或者说输入序列……?),通过移动端的 符号 功能快速输入。
在这里记录一下折腾的过程
前戳字符
由于Ctrl之类的前戳字符输入很麻烦,所以需要选择一个新的,比较方便插入的符号作为前戳字符。而且,为了避免出现误触发的情况,最好应该选择一个冷门字符。
就选择一个在unicode标准中「自定义区域」1的符号。嗯,就决定是""这个符号了,U+F8FF。
|
|
emacs配置前戳键
emacs中,配置快捷键是通过 global-set-key
函数进行的。不过,直接尝试用""(%)这个字符开头的绑定序列并不能正常工作。
|
|
|
|
就像这样,报错“键序列不是以前戳键开头”的错误,因为u+f8ff并不是emacs所认可的前置键,所以还需要想办法将这个符号映射为前戳键。
使用 define-prefix-command
函数来配置一个键序列2, 3
|
|
然后,再调用 global-set-key
将键序列与前戳键符号""(或"%")进行关联。
|
|
嗯,就这个emacswiki关于前戳键的介绍页面3来看,只执行上述步骤,有时候可能会由于编码问题而不工作。不过我没有遇到到,就不介绍了。
|
|
最后,像这样慢慢配置各种各样的输入序列,就可以了。
百度输入法(安卓版)配置符号文件
百度输入法支持导出和导入符号文件,可以通过在符号文件中记录序列来执行操作
首先,进入百度输入法的设置界面(「系统设置-语言或输入法-输入法管理-百度输入法-设置」或者「输入法面板-更多设置」进入)
然后,进入「高级设置」
选择「符号文件」,再选择「导出符号文件」
然后,一般就会在 /storage/emulated/0/baidu/ime/sym.ini
导出一个符号文件。
默认符号文件内容大致如下
|
|
要往里面添加符号的话,需要符合符号文件的格式,其格式如下4
- 开头的方括号记录着符号的一些原始信息
- 方括号的第一个参数是符号类目名称,不建议超过三个中文(全角)或4个英文(半角)字符
- 第二个参数则是作为分隔符号的空格的数量,此值越大,则作为分隔符号所需要的空格越多。
- 第三个参数只有0或1,表示此符号面板是否默认锁定(手动返回输入界面),还是输入一次后自动返回输入界面。0不锁定,1锁定
- 然后,方括号后则放置准备增加的符号文件
|
|
类似于这样子,符号组叫做emcs,各个符号之间的分隔符号为1个空格,默认锁定。
在把新加入的符号追加进去后,就可以导入了。
一些建议?以及简要的配置
这里,虽然设置的是快捷键,不过,与其说是快捷键不如说是操作序列,或者说按钮?
因此,比起方便输入,可能选择可读性更好的方式或许更好?
最终配置的效果大致如下图
然后,这边目前的配置大致如下(注:有对于awesome-tab插件的快捷键部分)
-
lisp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
;;;配置前戳键 (define-prefix-command 'u+f8ff-map) (global-set-key (kbd "") 'u+f8ff-map) ;;;配置快捷键 ;;;;emcs (global-set-key (kbd "打开") 'find-file) (global-set-key (kbd "撤销") 'undo) (global-set-key (kbd "选择") 'set-mark-command) (global-set-key (kbd "剪切") 'kill-region) (global-set-key (kbd "复制") 'kill-ring-save) (global-set-key (kbd "粘贴") 'yank) (global-set-key (kbd "执行") 'execute-extended-command) (global-set-key (kbd "取消") 'keyboard-quit) (global-set-key (kbd "保存") 'save-buffer) (global-set-key (kbd "另存为") 'write-file) (global-set-key (kbd "切换窗格") 'other-window) (global-set-key (kbd "杀死缓冲区") 'kill-buffer) (global-set-key (kbd "关闭窗口") 'delete-frame) ;;;;;标签组 (global-set-key (kbd "标签←") 'awesome-tab-backward-tab) (global-set-key (kbd "标签→") 'awesome-tab-forward-tab) (global-set-key (kbd "标签组←") 'awesome-tab-backward-group) (global-set-key (kbd "标签组→") 'awesome-tab-forward-group) (global-set-key (kbd "标签跳转") 'awesome-tab-ace-jump)
-
符号文件
1
[emcs,1,1] 打开 撤销 选择 剪切 复制 粘贴 执行 取消 保存 另存为 标签← 标签→ 标签组← 标签组→ 标签跳转 切换窗格 关闭窗口 杀死缓冲区
终
大概就是这样子吧?虽然感觉没有什么用就是了……?
-
知乎关于这个自定义区域的一个问题https://www.zhihu.com/question/432116248/answer/1610197647 ↩︎
-
emacs官方关于前戳键的文档(en)https://www.gnu.org/software/emacs/manual/html%5Fnode/elisp/Prefix-Keys.html ↩︎
-
emacswiki关于前戳键的页面(en)https://www.emacswiki.org/emacs/PrefixKey ↩︎ ↩︎
-
符号文件修改教程-百度手机输入法吧_百度贴吧:https://tieba.baidu.com/p/2087940382?red%5Ftag=0524456151 ↩︎
文章作者 crimsonote
上次更新 2021-02-02