gpt4 book ai didi

emacs - ESS/R 的有用键盘快捷键和提示

转载 作者:行者123 更新时间:2023-12-01 17:46:53 25 4
gpt4 key购买 nike

我想询问普通 ESS/R 用户他们经常使用哪些键绑定(bind)以及使用 ESS/R 的技巧。

最佳答案

我在 .emacs 文件中设置了多个快捷方式。最有用的是:

C-tab 在 R 命令行和文件之间切换(类似于 josh 答案,但速度更快):

(global-set-key [C-tab] 'other-window)

Ctrl 和向上/向下箭头键可根据您已输入的内容搜索历史记录:

(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)

注释-使用 C-d 或 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)

此外,我还启用了 CUA 模式(从选项菜单),并重新配置了很多快捷键,只需要两次击键(而不是标准模式下的四次击键):

;; 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)

您会在 ESS documentation 中找到更多有用的快捷方式.

关于emacs - ESS/R 的有用键盘快捷键和提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com