2010-05-25 7 views
25

के लिए उपयोगी कीबोर्ड शॉर्टकट्स और टिप्स मैं नियमित ईएसएस/आर उपयोगकर्ताओं से पूछना चाहता हूं कि वे अक्सर किस कुंजी बाइंडिंग का उपयोग करते हैं और ईएसएस/आर का उपयोग करने पर सुझाव देते हैं।ईएसएस/आर

उत्तर

17

मैं में कई शॉर्टकट की स्थापना की है करने के लिए foo.R संपादन कर रहे हैं से कूदने के लिए अच्छा है मेरी .emacs फ़ाइल। सबसे उपयोगी होते हैं:

सी-टैब आर कमांड लाइन और फ़ाइल के बीच स्विच करने (उत्तर जोश के समान है, लेकिन बहुत तेजी से):

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

नियंत्रण और ऊपर/नीचे तीर कुंजी इतिहास खोजने के लिए मिलान क्या आप पहले से लिखे साथ:

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

टिप्पणी-टिप्पणी हटाएं चयनित क्षेत्र Cd या सी मेजर-डी के साथ

(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 में।

+2

क्या मैं कोड को चुनने पर कोई कोड नहीं चुना गया है और जब कोड चुना जाता है तो ess-eval-line-and-step को Ctrl r संशोधित कर सकता हूं? यह इसे Rgui.exe की तरह अधिक बना देगा। – ggg

+0

क्या हाल ही में उपरोक्त कोड में कोई बदलाव है? जब मैंने इन कुंजी बाइंडिंग (विंडोज़ पर) का उपयोग करने की कोशिश की, तो कॉमंट-मोड मैप और एएस-मोड-मैप सेटिंग्स के साथ एक त्रुटि हुई। – Anusha

+0

emacs 24 (osx 10.10) पर असंगत-क्षेत्र फ़ंक्शन एक त्रुटि रिपोर्ट करता है: तर्कों की गलत संख्या। – qed

5

प्रतिलिपि Cz ईएसएस स्विच करने के लिए अंत के ईएसएस

अपने स्रोत फ़ाइल है कि आप आर सांत्वना

2

महान सामान, उम्र के लिए इसे का उपयोग किया गया है। दुर्भाग्यवश 15-11-2013 तक असंगत कुंजी बाध्यकारी ईएमएसीएस परिवर्तनों के कारण काम नहीं कर सकती है (मुझे लगता है कि कम से कम यह नवीनतम संस्करण लोड करने से पहले काम कर रहा था)। ऐसा इसलिए है क्योंकि डिफ़ॉल्ट असम्बद्ध फ़ंक्शन में 3 तर्क हैं लेकिन ऊपर परिभाषित एक है 2. इसे ठीक करने का सबसे अच्छा तरीका कोड से असम्बद्ध फ़ंक्शन को हटाना और कीबाइंडिंग को बनाए रखना है, इसलिए यह डिफ़ॉल्ट असम्बद्ध फ़ंक्शन का उपयोग करता है।

  • (परिभाषित कुंजी ईएसएस-मोड-नक्शा (kbd "CD") 'टिप्पणी-क्षेत्र)
  • (परिभाषित कुंजी ईएसएस-मोड-नक्शा (kbd "CSD: या दूसरे शब्दों में सिर्फ इस का उपयोग ") 'असम्बद्धता-क्षेत्र)
0

एमएन और एमपी ईएसएस आर कंसोल में अगली/पिछली कमांड के लिए।