【问题标题】:ess-rdired: customize key bindingsess-rdired:自定义键绑定
【发布时间】:2019-10-28 06:16:29
【问题描述】:

我想自定义键绑定,以便“n”和“p”通过编辑我的 .emacs 自动运行 'ess-rdired-next-line 和 'ess-rdired-previous-line

在我从带有 ESS 进程的缓冲区调用 ess-rdired 之前,它无法识别变量 ess-rdired-mode-map。我尝试将 (ess-rdired) 早些时候放在我的 .emacs 中并得到错误

现在没有 ESS 进程与此缓冲区关联

当我在使用如下定义键之前从 ESS 缓冲区调用 ess-rdired 时,它们的键绑定按预期工作。

(define-key ess-rdired-mode-map "P" 'ess-rdired-plot)
(define-key ess-rdired-mode-map "n" 'ess-rdired-next-line)
(define-key ess-rdired-mode-map "p" 'ess-rdired-previous-line)

Debugger entered--Lisp error: (void-variable ess-rdired-mode-map)

【问题讨论】:

标签: emacs key-bindings ess


【解决方案1】:

在加载包之前不会定义变量,因此您可以将要加载的键定义包装在ess-rdired之后,

(with-eval-after-load 'ess-rdired
  ;; (define-key ...)
  )

【讨论】:

  • 这不会改变行为(即键绑定仍然无法工作,直到我在调用 R 进程后手动评估 elisp):(with-eval-after-load 'ess-rdired (define-key ess-rdired-mode-map "P" 'ess-rdired-plot) (define-key ess-rdired-mode-map "n" 'ess-rdired-next-line) (define-key ess-rdired-mode-map "p" 'ess-rdired-previous-line) )
  • @Jay 不,这解决了您显示的错误,对于大多数命令,默认情况下 ess 不会启动进程。但是,无论您在启动 R 过程之前还是之后评估 elisp,它都应该有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多