当前位置:  开发笔记 > 编程语言 > 正文

如何让Cp成为Devel :: PerlySense的Emacs前缀键?

如何解决《如何让Cp成为Devel::PerlySense的Emacs前缀键?》经验,为你挑选了2个好方法。

我刚刚安装了Devel :: PerlySense 0.0180.

我在我的.emacs文件中添加了以下内容:

 ; PerlySense
 (load "~/perly-sense")

 (global-unset-key "\C-p")

 (global-set-key (kbd "\C-p \C-d") 'perly-sense-smart-docs-at-point)

 (global-set-key (kbd "\C-p \C-g") 'perly-sense-smart-go-to-at-point)

但是,现在每当我尝试在emacs中加载Perl文件时,我都会在加载之前收到以下错误:

错误"键序列Cp mf以非前缀键Cp开头"

我该如何解决这个问题?我是emacs的新手,所以非常感谢这方面的任何帮助.

更新:

ysth提交的链接建议,执行以下操作:

 (use-local-map (make-sparse-keymap))
     => nil
 (local-set-key "\C-p" ctl-x-map)
     => nil
 (key-binding "\C-p\C-f")
     => find-file

 (key-binding "\C-p6")
     => nil

现在,我是否需要将其添加到我的.emacs文件中以创建键映射?

当我将上述代码添加到.emacs并启动emacs时,我得到的错误是:

void-variable =>

这可能是什么问题?



1> Trey Jackson..:

您问题的明确答案是:

(define-prefix-command 'perly-sense-map)
(global-set-key (kbd "C-p") 'perly-sense-map)
(define-key perly-sense-map (kbd "C-d") 'perly-sense-smart-docs-at-point)
(define-key perly-sense-map (kbd "C-g") 'perly-sense-smart-go-to-at-point)

有关正在完成的操作的更多信息,请查看文档

define-prefix-command

keymaps

kbd

在原始帖子中,您混合使用kbd和较旧的"\ Cp"表示法.您可以阅读这个讨论键绑定的大型教程,其中包含大量信息(超过您可能需要的信息).我发现kbd用法是最简单的,你只需要传递你在密钥(C-h k)上做帮助时看到的字符串.



2> ysth..:

默认情况下,Emacs仅允许将某些键作为前缀(多键命令的开始)。请参阅http://www.gnu.org/software/emacs/manual/html_node/elisp/Prefix-Keys.html。 您需要创建一个键盘映射并将其绑定到Cp。

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有