[ESS] Using anything.el for R help / object browsing
Short, Tom
TShort at epri.com
Mon Dec 15 03:32:07 CET 2008
> Rainer M Krug <r.m.krug <at> gmail.com> writes:
>
> On Mon, Dec 8, 2008 at 5:06 AM, Short, Tom <TShort at epri.com> wrote:
> > I added another anything source for local R objects at:
> >
> > http://www.emacswiki.org/emacs/AnythingSources#toc38
> >
> > In the anything list, it shows a list of the R objects in your
workspace
> > along with a few details (using ls.str). The default action is str,
with
> > summary, head, tail, print, and dput also available.
> >
> > I thought about trying to add details to the larger list that looks
> > through the whole searchpath. It might be some work as it would
require
> > caching for performance.
>
> That sounds all really fascinating and I would love to try it, but
> emacs is still (after more then two years) still a mystery, especially
> how to deal with installing these add-ons.
>
> Therefore my question: would it be possible to draw up an easy to
> follow HowTo which describes the process on hot to install "anything"
> and how to activate it?
I'll take a crack at it. For some general tips on installing
and configuring add-ons to emacs, see:
http://www.lns.cornell.edu/~bxin/computer/emacs/emacs24/emacs206.htm
(1) Download
Download anything.el and anything-sources.el from here:
http://www.emacswiki.org/emacs/download/anything.el
http://www.emacswiki.org/emacs/download/anything-config.el
Put these somewhere where emacs can find them. I use
c:/e/home/site-lisp on winXP.
anything.el is the base system, and anything-config.el is a
fairly wide-ranging setup for anything.
(2) Emacs path
In your .emacs file, make sure the emacs load-path points to the
directory where you put anything.el and anything-sources.el. In
my .emacs, I have the following:
(add-to-list 'load-path "c:/e/home/site-lisp")
This adds my directory to emacs' load-path.
(3) Anything configuration
I'm including a configuration section in my .emacs file that adds
anything to emacs and configures it. I'll describe some of the
contents with comments (things after semicolons). Anything
uses "anything-sources" to build the list that it searches
from. You can have several. In the configuration included, I've
added two for R objects, and the rest are built into
anything-config. "setq" does variable assignment in lisp. You can
do a lot of emacs customizing just with that. Here's the partial
listing with comments:
;; Load anything and anything-config
(require 'anything)
(require 'anything-config)
;; My hotkey for anything
(global-set-key [f11] 'anything)
;; This gets around a bug in part of anything:
(remove-hook 'kill-emacs-hook 'anything-c-adaptive-save-history)
;; The anything-source for all R objects in the searchpath
(setq anything-c-source-R-help
'((name . "R objects / help")
;; more code here...
;; The anything-source for local objects
(setq anything-c-source-R-local
'((name . "R local objects")
;; more code here...
;; You can add or change actions by modifying the configuration.
;; The R commands run can be tailored to what you want.
;; Just edit or add items as follows. This is for the "str"
;; function. The "str(" part is where you enter the command.
;; The "R str: " part is the name of the buffer where results go.
("str" . (lambda(obj-name)
(ess-execute (concat "str(" obj-name ")\n") nil
(concat "R str: " obj-name))))
;; This is the part of the configuration that tells anything what
;; you want to include in the list of things to search for. I've
;; highlighted a few with comments. Note that some things need
;; external tools (like locate) or emacs packages loaded (like
;; recentf). You can rearrange them for a different order. Comment
;; some out if you don't want them or something isn't working.
(setq
anything-sources
(list
anything-c-source-buffers ; buffers
anything-c-source-recentf ; recent files: needs (require 'recentf)
anything-c-source-R-local
anything-c-source-R-help
anything-c-source-imenu ; e.g. Imenu-S menu
anything-c-source-files-in-current-dir
anything-c-source-occur
anything-c-source-locate ; needs the utility locate
))
- Tom
More information about the ESS-help
mailing list