如何有效地在Emacs ESS模式程序的關鍵Emacs的ESS鍵聯結 「小於」 破折號
"<" "[less than]"
到
"<- " "[less than][dash][space]"
就像R的MacOS的版本使用。
如何有效地在Emacs ESS模式程序的關鍵Emacs的ESS鍵聯結 「小於」 破折號
"<" "[less than]"
到
"<- " "[less than][dash][space]"
就像R的MacOS的版本使用。
也許這是ESS版本依賴。
在我的ESS版本(12.03)中,似乎您可以將">"
綁定到'ess-insert-S-assign
以獲得您喜歡的內容。
看(在剛剛彈出的assign
的*Completions*
緩衝M-x ess-<TAB><TAB>
和搜索)提供給您的ess-
命令來查看哪些命令將是你應綁定到">"
可能的罪魁禍首。
如果這不適合你 - 也許你可能需要升級。
(define-key ess-mode-map「<」'ess-insert-S-assign) – PascalVKooten
看起來在文件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))))))
你能詳細解釋一下嗎?我不明白這是如何工作的......(M-x ess-S-assign-key沒有得到結果) – PascalVKooten
我會建議在ess-help列表上詢問。 –
我相信我這個星球的角落叫做小於''。 –
它現在也在這個角落。 – PascalVKooten
:)留下您可以編輯的帖子的標題。 –