如何在emacs中移动到文件的开头(即窗口文本编辑器中Ctrl+ 的效果Home)?
Mashing pageup不会将光标移动到开头(也不是Ctrl+Home,ofc).
这里所需结果的快捷方式描述如下:
M-<:移动到缓冲区的顶部(缓冲区的开头).使用数字参数n,从顶部移动到n/10.
M->:移动到缓冲区的末尾(缓冲区结束).
但是Meta + <产生"没有Mx标签 - 搜索或Mx标签 - 查询 - 替换正在进行中"消息.
我正在键入快捷方式,Alt + Shift + , 因为要获取" <"我必须键入" Shift + ,"
难道我做错了什么?
谢谢.
编辑:
只有在通过屏幕运行emacs时才会出现这个问题,其中键盘快捷键由于某种原因被误解.例如,C-Home给出以下错误消息:
M-[ 1 ; 5 h (translated from M-[ 1 ; 5 H) is undefined
有什么办法吗?
Pun*_*rud 11
这适用于较新的 Emacs
Esc followed by < #beginning of file
Esc followed by > #end of file
Run Code Online (Sandbox Code Playgroud)
与 ssh 和 Tmux 结合使用效果很好
我无法重现您所经历的确切行为C-HOME。对我来说,它翻译为M-[ 1 ;,没有5H(但实际上是插入的......)。
但是,考虑到这一点,我将如何设置绑定。
我会进入*scratch*缓冲区并输入
(read-key-sequence "please type C-home ") C-j
这将提示您输入按键顺序,因此,C-HOMEEmacs 应该在该行之后插入以下内容read-key-sequence:
“^[[1;”
5小时
这向我显示了按键序列的实际字符串,以及神秘的5H.
使用该字符串,我在 .emacs 中设置绑定,如下所示:
(global-set-key "^[[1;" 'beginning-of-buffer)
Run Code Online (Sandbox Code Playgroud)
这将适当地定义键绑定,除了(对我来说)它现在插入5H到缓冲区的顶部。我相信这5H是屏幕的产物......
更新添加:
这5H让我很恼火,但据我所知,Emacs 认为我们实际上是在打字。因此,我编写了两种导致相同行为的替代方案。
第一个用于在到达缓冲区开头后keyboard-quit中断按键序列。这会阻止插入。但这样做的缺点是- 它会随时在你面前闪烁/叮叮。有点烦人。5Hkeyboard-quit
(全局设置键“^[[1;”'我的鲍勃) (defun 我的鲍勃 () “转到缓冲区的开头,然后退出” (交互的) (缓冲区开始) (键盘退出))
为了避免keyboard-quit,我编写了一个不同的版本,它运行一小段代码,5H如果存在则删除它。它涉及更多一点,但可以完成工作。
(全局设置键“^[[1;”'我的鲍勃)
(defun 我的鲍勃 ()
“转到缓冲区的开头,然后删除绑定插入的任何 5H”
(交互的)
(缓冲区开始)
(run-with-idle-timer 0.1 nil '删除插入的字符“5H”))
(defun 删除插入的字符(字符)
(保存游览
(向后字符(长度字符))
(如果(查看(正则表达式引用字符))
(删除字符(长度字符)))))
可以将其delete-inserted-chars重新用于屏幕中也恰好插入字符的其他绑定。