Binding Emacs ESS密钥绑定“;少于;猛冲
如何在Emacs ESS模式下高效编程是关键Binding Emacs ESS密钥绑定“;少于;猛冲,binding,emacs,key,mode,ess,Binding,Emacs,Key,Mode,Ess,如何在Emacs ESS模式下高效编程是关键 "<" "[less than]" “文件ess-s-l.el中似乎有一个用于它的现有函数。您似乎可以使用变量ess-s-assign-key: ;; This is by Seth Falcon, modeled after ess-toggle-underscore (see below). (defun ess-toggle-S-assign-key (force) "Possibly bind the key in `es
"<" "[less than]"
“文件ess-s-l.el
中似乎有一个用于它的现有函数。您似乎可以使用变量ess-s-assign-key
:
;; This is by Seth Falcon, modeled after ess-toggle-underscore (see below).
(defun ess-toggle-S-assign-key (force)
"Possibly bind the key in `ess-S-assign-key' to inserting `ess-S-assign'.
If `ess-S-assign-key' is \"_\", simply use \\[ess-toggle-underscore].
Otherwise, unless the prefix argument FORCE is set,
toggle between the new and the previous assignment."
(interactive "P")
(require 'ess-mode)
(require 'ess-inf)
(let ((current-action (lookup-key ess-mode-map ess-S-assign-key))
(insert-S-assign (lambda() (interactive)
(delete-horizontal-space) (insert ess-S-assign))))
(if (and (stringp ess-S-assign-key)
(string= ess-S-assign-key "_"))
(ess-toggle-underscore force)
;; else "do things here"
(let* ((current-is-S-assign (eq current-action insert-S-assign))
(new-action (if force insert-S-assign
;; else "not force" (default):
(if (or current-is-S-assign
(eq ess-S-assign-key-last insert-S-assign))
ess-S-assign-key-last
insert-S-assign))))
(message "[ess-toggle-S-assign-key:] current: '%s', new: '%s'"
current-action new-action)
(define-key ess-mode-map ess-S-assign-key new-action)
(define-key inferior-ess-mode-map ess-S-assign-key new-action)
(if (not (and force current-is-S-assign))
(setq ess-S-assign-key-last current-action))))))
文件ess-s-l.el
中似乎有一个现有的函数。您可以使用变量ess-s-assign-key
:
;; This is by Seth Falcon, modeled after ess-toggle-underscore (see below).
(defun ess-toggle-S-assign-key (force)
"Possibly bind the key in `ess-S-assign-key' to inserting `ess-S-assign'.
If `ess-S-assign-key' is \"_\", simply use \\[ess-toggle-underscore].
Otherwise, unless the prefix argument FORCE is set,
toggle between the new and the previous assignment."
(interactive "P")
(require 'ess-mode)
(require 'ess-inf)
(let ((current-action (lookup-key ess-mode-map ess-S-assign-key))
(insert-S-assign (lambda() (interactive)
(delete-horizontal-space) (insert ess-S-assign))))
(if (and (stringp ess-S-assign-key)
(string= ess-S-assign-key "_"))
(ess-toggle-underscore force)
;; else "do things here"
(let* ((current-is-S-assign (eq current-action insert-S-assign))
(new-action (if force insert-S-assign
;; else "not force" (default):
(if (or current-is-S-assign
(eq ess-S-assign-key-last insert-S-assign))
ess-S-assign-key-last
insert-S-assign))))
(message "[ess-toggle-S-assign-key:] current: '%s', new: '%s'"
current-action new-action)
(define-key ess-mode-map ess-S-assign-key new-action)
(define-key inferior-ess-mode-map ess-S-assign-key new-action)
(if (not (and force current-is-S-assign))
(setq ess-S-assign-key-last current-action))))))
也许这与ESS版本有关
在我的ESS(12.03)版本中,似乎可以将“>”
绑定到“ESS-insert-S-assign
”以获得所需
查看可用的ess-
命令(M-x ess-
并在刚刚弹出的*完成*
缓冲区中搜索assign
),查看哪个命令可能是您应该绑定到“>”的罪魁祸首
如果这对您不起作用,您可能需要升级。这可能与ESS版本有关
在我的ESS(12.03)版本中,似乎可以将“>”
绑定到“ESS-insert-S-assign
”以获得所需
查看可用的ess-
命令(M-x ess-
并在刚刚弹出的*完成*
缓冲区中搜索assign
),查看哪个命令可能是您应该绑定到“>”的罪魁祸首
如果这对你不起作用——也许你需要升级。我相信我的地球之角现在也在这个角落。:)留下你可以编辑的帖子标题。我相信我的地球之角现在也在这个角落。:)留下你也可以编辑的帖子标题。你能详细解释一下吗ore?我不知道这是怎么回事……(M-x ess-S-assign-key没有得到结果)我建议在ess帮助列表上询问。你能详细说明一下吗?我不知道这是怎么回事……(M-x ess-S-assign-key没有得到结果)我建议在ess帮助列表上询问。(定义键ess模式映射)(定义键ess模式映射)