2012-08-27 28 views
0

如何有效地在Emacs ESS模式程序的關鍵Emacs的ESS鍵聯結 「小於」 破折號

"<"  "[less than]" 

"<- " "[less than][dash][space]" 

就像R的MacOS的版本使用。

+1

我相信我這個星球的角落叫做小於''。 –

+0

它現在也在這個角落。 – PascalVKooten

+0

:)留下您可以編輯的帖子的標題。 –

回答

1

也許這是ESS版本依賴。

在我的ESS版本(12.03)中,似乎您可以將">"綁定到'ess-insert-S-assign以獲得您喜歡的內容。

看(在剛剛彈出的assign*Completions*緩衝M-x ess-<TAB><TAB>和搜索)提供給您的ess-命令來查看哪些命令將是你應綁定到">"可能的罪魁禍首。

如果這不適合你 - 也許你可能需要升級。

+0

(define-key ess-mode-map「<」'ess-insert-S-assign) – PascalVKooten

2

看起來在文件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)))))) 
+0

你能詳細解釋一下嗎?我不明白這是如何工作的......(M-x ess-S-assign-key沒有得到結果) – PascalVKooten

+0

我會建議在ess-help列表上詢問。 –