2012-10-14 38 views
8

我正試圖優化我的ESS-R環境。到目前爲止,我利用r-autoyas,我設置intendation和東西后style guides,在迷你緩衝區有eldoc提示功能參數,我可以選擇press a key爲了找到有關變量的信息點(更多here) 。爲R定製ESS環境

爲了擁有一個漂亮的R環境,還有其他的東西嗎?也許非ESS的人有一些不錯的東西可以添加(我從看着Eclipser那裏獲得了變量信息)。一個例子可能是一個簡單的方法來插入「剛纔定義好的」變量而不用鍵入變量名稱(應該是這樣的)?

+0

你能更好地描述你在找什麼優化?我 - 也許還有其他人 - 不知道ESS。你能描述一下嗎?最後,你能否列出你已經完成的命令 - 而不是描述性的方式? – Ali

+0

我更新了帖子,並提供了我提到的例子的鏈接。有了一個很好的R環境,我的意思是讓它儘可能舒適和快速地使用R.不熟悉ESS的人可能會提到他們最喜歡的R環境的擴展/功能/插件,以幫助他們優化工作流程。 – PascalVKooten

+1

您是否嘗試過R-Studio?我認爲這是R最好的IDE之一。 – Ali

回答

7

我不使用autoyas,因爲我覺得auto-complete integration一個更好的方法(請幫我改的問題,而不是「關閉」的線程,如果它不能很好地制定)。

插入先前定義的符號是一種稱爲'dabbrev-expand'的通用emacs功能,並且綁定到M-/。我有這個在我的.emacs,使其完整的全符號:

(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_\\|s.") 
(setq dabbrev-case-fold-search t) 

,我用大量的imenu-based-jump-to-symbol-definition另一件事。它提供與emacs標籤類似的功能,但僅用於與當前緩衝區處於相同模式的打開緩衝區。它還使用IDO進行查詢:

imenu-anywhere screenshot

認沽imenu-anywhere.el到您的Emacs負載路徑和補充一點:

(require 'imenu-anywhere) 
(global-set-key [?\M-o] 'imenu-anywhere) 

現在,如果我做RET emacs的跳轉到只要在其中一個打開的緩衝區中定義了'foo',就可以使用'foo'的函數/類/方法/泛型定義。這當然適用於模式定義imenu標籤的情況。 ESS定義了這些,所以你不需要添加更多。

還有一些R-yas模板的集合。我沒有開始使用它們,但我的猜測是這是一個非常有效的模板插入機制。

[編輯]激活tracebug:

(setq ess-use-tracebug t) 
+0

您可以擴展「以前定義的符號,M- /」嗎?我似乎無法得到這個工作(「沒有X的動態擴展」) – PascalVKooten

+0

你也可以解釋如何添加imenu標籤嗎?閱讀imenu-anywhere.el沒有幫助。 – PascalVKooten

+0

自動完成在這裏真的很有用! – PascalVKooten