有用的键盘快捷键和ESS / R的提示 [英] Useful keyboard shortcuts and tips for ESS/R

查看:143
本文介绍了有用的键盘快捷键和ESS / R的提示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

解决方案

我想问一些常见的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)

您将在 ESS文档中找到更多有用的快捷方式。 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的提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆