Binding 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

如何在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 `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模式映射)