【问题标题】:Reloading AucTex Labels and Defining Keybindings重新加载 AucTex 标签和定义键绑定
【发布时间】:2012-10-24 03:06:35
【问题描述】:

当我在 emacs 中将标签添加到 .tex 文件时,我曾经重新加载文件以使其显示在 RefTeX 中。即 C-c ) 除非我重新加载文件,否则不会有新标签。

经过一番搜索,我发现 C-u C-c ) 在尝试引用之前会刷新 RefTeX。这可以按我的意愿工作,但我想对这个命令使用 C-c r 而不是每次都输入 C-u C-c )。我该怎么做?

谢谢, 吉姆

【问题讨论】:

    标签: emacs auctex


    【解决方案1】:

    我不使用 reftex,但据我所知,您只想定义一个绑定:

    (define-key reftex-mode-map (kbd "C-c r") 'reftex-reference) 
    

    【讨论】:

    • 如果我理解正确,这只会将 C-c ) 映射到 C-c r。我要做的是将序列“C-u C-c )”映射到 C-c r。你知道怎么做吗?
    【解决方案2】:

    基于奥列格的回答:

    如果这就是你所追求的,也许最好已经给它提供 C-u 参数:

    (defun call-reftex-reference-directly ()
      (interactive)
      (let ((current-prefix-arg 4)) ;; emulate C-u
        (call-interactively 'reftex-reference) ;; invoke reftex-reference 
      )
    )
    (define-key reftex-mode-map (kbd "C-c r") 'call-reftex-reference-directly) 
    

    如果这对你有用,不妨试试?

    【讨论】:

    • 这个作品的一个版本。非常感谢!代码如下:我刚刚更改了 4 --> 1 并定义了一个全局键。由于某种原因,“reftex-mode-map”抛出了一个错误。 (defun call-reftex-reference-directly () (interactive) (let ((current-prefix-arg 1)) ;; 模拟 C-u (call-interactively 'reftex-reference) ;; 调用 reftex-reference )) (global- set-key (kbd "C-c r") 'vspace) ;
    【解决方案3】:

    您可以在标签选择缓冲区中键入r 以刷新它而无需重新加载文件。刷新是即时的(除非您有非常大/非常多的链接文件)。

    【讨论】:

    • @user1769240 太好了!在 StackOverflow 上,习惯性地对有帮助的答案进行投票,并“接受”最好的答案。如果您收到多个有用的回复,您可以投票给多个答案。您只能“接受”一个答案,但如果您改变主意(或在您接受一个答案后发布更好的答案),您可以更改您接受的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    相关资源
    最近更新 更多