如何自定义Emacs键绑定以转到缓冲区的特定行/结尾
我想定制Emacs,以便 ESC:如何自定义Emacs键绑定以转到缓冲区的特定行/结尾,emacs,elisp,customization,text-editor,key-bindings,Emacs,Elisp,Customization,Text Editor,Key Bindings,我想定制Emacs,以便 ESC:nRET 带我到行号n 及 ESC:$RET 带我到最后一行。(vi编辑器就是这样工作的。) 如何在Emacs配置文件中实现这一点?目前,我的.emacs中有: (global-set-key (kbd "M-9") 'prev-window) (global-set-key (kbd "M-0") 'other-window) 我不想使用任何现成的解决方案(如evil),因为它们过于臃肿,并且会弄乱我现有的快捷方式。将其放入文件并加载(加载意味着执行): 要
n
RET
带我到行号n
及
ESC:$
RET
带我到最后一行。(vi编辑器就是这样工作的。)
如何在Emacs配置文件中实现这一点?目前,我的.emacs
中有:
(global-set-key (kbd "M-9") 'prev-window)
(global-set-key (kbd "M-0") 'other-window)
我不想使用任何现成的解决方案(如evil),因为它们过于臃肿,并且会弄乱我现有的快捷方式。将其放入文件并加载(加载意味着执行): 要加载它,可以使用M-x
load file
,然后以交互方式输入文件路径
请记住,组合键M-:(与ESC:)在Emacs中已经有了意义,因此现在它被隐藏起来了
当然,您也可以从
.emacs
加载文件,方法是将(加载文件/path/to/my/file”)
放入.emacs
中,或者将这些行直接放入.emacs
文件(或加载的任何其他配置文件)为什么M-x
会被您提供的代码掩盖?OP想要使用ESC:
,而不是escx
:)啊,打字错误,是的。当然,M-:
会被掩蔽!严重质疑禁用M-的内置行为是否明智:
(defun vi-goto-line (arg)
(interactive "sLine:")
(message arg)
(if (string= "$" arg)
(end-of-buffer)
(goto-line (string-to-int arg))
)
)
(global-set-key (kbd "M-:") 'vi-goto-line)