在emacs中使用语义和交互函数以及默认参数调用的键映射

在emacs中使用语义和交互函数以及默认参数调用的键映射,emacs,configuration-files,key-bindings,keymaps,emacs-semantic,Emacs,Configuration Files,Key Bindings,Keymaps,Emacs Semantic,语义上;要移动函数声明,可以使用C-C,J打开声明,只需C-u C-SPC返回调用函数的位置。但是,要将这些函数映射到其他一些短键绑定,如M-right(表示alt键与右箭头组合),因此在.emacs中,我们可以: (定义键全局映射[(M-右)]语义完全跳转) 这确实有效,因为C-C,J被映射为调用语义完全跳转函数 所以有两个问题: 如何将M-left映射到C-u C-SPC?记住C-u不是命令的一部分,它只是传递给被调用函数的参数 是否有任何方法可以通过C-C,J调用语义完全跳转,而不必进行交

语义上;要移动函数声明,可以使用
C-C,J
打开声明,只需
C-u C-SPC
返回调用函数的位置。但是,要将这些函数映射到其他一些短键绑定,如
M-right
(表示alt键与右箭头组合),因此在.emacs中,我们可以:

(定义键全局映射[(M-右)]语义完全跳转)

这确实有效,因为
C-C,J
被映射为调用语义完全跳转函数

所以有两个问题:

  • 如何将M-left映射到
    C-u C-SPC
    ?记住
    C-u
    不是命令的一部分,它只是传递给被调用函数的参数

  • 是否有任何方法可以通过
    C-C,J
    调用语义完全跳转,而不必进行交互,并且默认情况下始终使用默认值(光标所在的位置主要是单词)?这将允许避免一次额外的击键在代码中移动得更快

  • 这可以通过
    M-.
    (映射到find tag)和
    M-*
    (映射到pop tag mark)与emacs一起玩标签和etag来实现,但使用语义,它似乎更强大,更适合于具有大量代码的大型项目

    8.8卢卢卢卢卢卢卢卢8 8 8 8 8卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢̲a̲r̲e̲a̲S̲k̲i̲n̲g̲i̲S̲:只需使用
    M-right
    在函数声明中移动(无需询问)需要哪些配置行和
    M-left
    转到上一点,该函数是使用语义调用的。

    以下是我得到的:

    (add-hook
     'c-mode-common-hook
     (lambda()
       (define-key c-mode-base-map
           (kbd "C-x C-h") 'semantic-ia-fast-jump)))
    
    (global-set-key
     (kbd "M-p")
     (lambda()(interactive) (set-mark-command 4)))
    

    它工作得很好:-)剩下的是关于第二个问题,当我按下M-left时,仍然会问到函数要跳转到哪里,我有这样一个问题:(define key global map[(M-left)]'语义完全跳转)。如何修改以自动获取默认值而不询问任何内容并执行操作?在跳转到函数声明之前,简单地问一下跳转到哪个函数,在我的小缓冲区中有:“跳转到符号(函数的默认名称):”。您可能仍然有
    语义完全跳转。那个要求符号。您需要
    语义ia快速跳转
    ,答案中有。谢谢,现在它工作得非常好。我使用的键绑定是错误的,但您的评论给了我修复的线索。它在当前缓冲区内返回。只需杀死stdio.h即可返回。该点将位于您离开的同一点