问题描述
我想问一些常见的ESS / R用户频繁使用的主要绑定方法和使用ESS / R的技巧。我已经在.emacs文件中设置了几个快捷方式。最有用的是:
C标签在R命令行和文件之间切换(类似于josh答案,但要快得多):
(全局设置键[C-tab]'其他窗口)
控制和向上/向下箭头键可以匹配您已输入的内容来搜索历史记录:
code(define-key comint-mode-map [c-up]'comint-previous-matching-input-in-input)
(define-key comint-mode-map [C-down ]'comint-next-matching-input-from-input)
注释 - 取消注释所选区域Cd或C-maj-d
(defun uncomment-region(beg end)
Like`comment-region
(交互式r)
(注释区域结束-1))
(定义键素模式映射(kbdCd)'comment-region)
(define-key ess-mode-map(kbdCSd)'uncomment-region)
此外,我还启用了CUA模式(从选项菜单),并重新配置了很多快捷方式,只需要两个按键(而不是标准模式中的四个):
;;按[删除]键
(删除选择模式)
;;删除选择ESS模式(.R文件)
(定义键ess-mode-map\Cl'ess-eval-line-and-step)
(define-key ess-mode-map \Cp'ess-eval-function-or-paragraph-and-step)
(define-key ess-mode-map\Cr'ess-eval-region)
;; iESS模式(R控制台)
(define-key劣质模式映射\Cu'comint-kill-input)
(define-key inferior-ess-mode-map\\ \\ cw'reverse-kill-word)
(define-key lower-ess-mode-map\Ca'comint-bol)
(define-key inferior-ess-mode-map [home]'comint-bol)
;; Comint模式(R控制台)
(define-key comint-mode-map\Ce'comint-show-maximum-output)
(define-key comint-mode-map\\ \\ ccomint-show-output)
(define-key comint-mode-map\Co'comint-kill-output)
;;使用Cf / CF(control-maj-F进行backware搜索)搜索
(全局设置键\Cf'isearch-forward)
(全局设置键(kbdCSf )'isearch-backward)
(define-key isearch-mode-map\Cf'isearch-repeat-forward)
(define-key isearch-mode-map(kbdCSf) 'isearch-repeat-backward)
;;使用Cs / CS
保存(全局设置密钥(kbdCs)'保存缓冲区)
(全局设置密钥(kbdCSs)'写入文件)
;;需要重新定义它们的搜索模式(不知道为什么)
(define-key isearch-mode-map(kbdCs)'save-buffer)
(define-key isearch-mode- map(kbdCSs)'write-file)
;;暂停=专用窗口。
(defun toggle-current-window-dedication()
(interactive)
(let *((window(selected-window))
(dedicated(window-dedicated-p窗口))
(set-window-dedicated-p window(not dedicated))
(消息Window%sdedicated to%s
(如果专用不再)
(buffer-name))))
(全局设置键[pause]'toggle-current-window-dedication)
;; delete = delete
(global-set-key [delete]'delete-char)
;; Cb = list buffers
(global-set-key(kbdCb)'bs-show)
您将在中找到更多有用的快捷方式。 p>
I would like to ask regular ESS/R users what key bindings do they use frequently and tips on using ESS/R.
I have set several shortcuts in my .emacs file. The most useful are:
C-tab to switch between the R command line and the file (similar to josh answer, but much faster):
(global-set-key [C-tab] 'other-window)
Control and up/down arrow keys to search history with matching what you've already typed:
(define-key comint-mode-map [C-up] 'comint-previous-matching-input-from-input)
(define-key comint-mode-map [C-down] 'comint-next-matching-input-from-input)
Comment-uncomment a selected region with C-d or C-maj-d
(defun uncomment-region (beg end)
"Like `comment-region' invoked with a C-u prefix arg."
(interactive "r")
(comment-region beg end -1))
(define-key ess-mode-map (kbd "C-d") 'comment-region)
(define-key ess-mode-map (kbd "C-S-d") 'uncomment-region)
Also I've also enabled CUA mode (from options menu) and reconfigured quite a lot of shortcuts to require only two keystrokes (instead of four in standard mode):
;; Delete selection when pressing [delete] key
(delete-selection-mode t)
;; ESS Mode (.R file)
(define-key ess-mode-map "\C-l" 'ess-eval-line-and-step)
(define-key ess-mode-map "\C-p" 'ess-eval-function-or-paragraph-and-step)
(define-key ess-mode-map "\C-r" 'ess-eval-region)
;; iESS Mode (R console)
(define-key inferior-ess-mode-map "\C-u" 'comint-kill-input)
(define-key inferior-ess-mode-map "\C-w" 'backward-kill-word)
(define-key inferior-ess-mode-map "\C-a" 'comint-bol)
(define-key inferior-ess-mode-map [home] 'comint-bol)
;; Comint Mode (R console as well)
(define-key comint-mode-map "\C-e" 'comint-show-maximum-output)
(define-key comint-mode-map "\C-r" 'comint-show-output)
(define-key comint-mode-map "\C-o" 'comint-kill-output)
;; Search with C-f / C-F (control-maj-F for backware search)
(global-set-key "\C-f" 'isearch-forward)
(global-set-key (kbd "C-S-f") 'isearch-backward)
(define-key isearch-mode-map "\C-f" 'isearch-repeat-forward)
(define-key isearch-mode-map (kbd "C-S-f") 'isearch-repeat-backward)
;; Save with C-s / C-S
(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-S-s") 'write-file)
;; need to redefine them for isearch mode (don't know why)
(define-key isearch-mode-map (kbd "C-s") 'save-buffer)
(define-key isearch-mode-map (kbd "C-S-s") 'write-file)
;; Pause = dedicate window.
(defun toggle-current-window-dedication ()
(interactive)
(let* ((window (selected-window))
(dedicated (window-dedicated-p window)))
(set-window-dedicated-p window (not dedicated))
(message "Window %sdedicated to %s"
(if dedicated "no longer " "")
(buffer-name))))
(global-set-key [pause] 'toggle-current-window-dedication)
;; delete = delete
(global-set-key [delete] 'delete-char)
;; C-b = list buffers
(global-set-key (kbd "C-b") 'bs-show)
You will find many more useful shortcuts in ESS documentation.
这篇关于有用的键盘快捷键和ESS / R的提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!