Anything.el was renamed to Helm in 2012.
anything.el
is a great application framework written by TamasPatrovics. It provides a totally new Emacs experience. While normal Emacs way is specifying action then selecting candidates, the anything
way is narrowing and selecting candidates then executing action for selected candidates. It is something like “über-extensible spotlight for emacs” or “QuickSilver for emacs”. The current maintainer of anything.el
is rubikitch.
Starting with the command M-x anything
, all things matching a given pattern will be shown in a special buffer named *anything*
.
Initially all candidates are displayed. Then they are narrowed by a given query. A candidate can be selected with C-p/C-n/C-v/M-v (or up/down/pgup/pgdown). Hitting RET invokes the default action for that type, hitting TAB lists all possible actions.
What’s queried is given by a list of sources, namely anything-sources
, such as buffers, file names, bookmarks, and so on. It means that multiple Emacs commands are integrated in one command. You do not have to remember commands corresponding to actions, anything
does the right thing.
You can get anything.el
at anything.el.
Here’s an easy to follow introduction explaining how Anything works and here’s an introduction to creating new sources for Anything.
anything.el
only contains the basic framework and some example sources. anything-config.el
is intended to provide a rich set of additional sources and types that can be used by users to adapt anything.el
to their needs.
TassiloHorn, JasonMcBrayer, rubikitch and ThierryVolpiatto maintain and extend anything-config.el
and the best source for getting the most current version is to clone his git
repository. Everybody can push to it as a mob user.
git clone git://repo.or.cz/anything-config.git
If you have enhancements please drop one of them a mail and they will pull your changes in. You can also submit patches, see the manual page of git format-patch
.
If you have any cool feature, write to AnythingSources page, push to mob repository, or mail me, i will apply it. 😊 – rubikitch
anything-config.el
can also be downloaded from anything-config.el.
You will find many sources in AnythingSources page.
You can extend Anything by AnythingPlugins.
(It would be good to explain what a config, a source, and a plugin are. Are they different things?)
There are a lot of goodies in RubikitchAnythingConfiguration, the current maintainer’s configuration. Feel free to copy and paste!
AndyStewart has added some cool extensions : Lisp:anything-extension.el
‘source’
. You can easily define sources.‘source’
is a list of ‘attributes’
, Their names are pre-defined; such as name, candidates, and type.‘plugin’
. For example, search method in anything itself is single regexp search, but with Lisp:anything-match-plugin.el anything supports multiple regexp search. User-defined ‘attributes’
are also ‘plugin’
.‘sources’
and ‘plugins’
.There are various ways to install Anything.
You can clone the git repository:
git clone git://repo.or.cz/anything-config.git
Then add this to your ~/.emacs.el:
(add-to-list 'load-path "/path/to/anything/") (require 'anything-config)
Or you if you want to start with a minimal configuration download just Lisp:anything.el and Lisp:anything-config.el and add the following to your ~/.emacs.el:
(add-to-list 'load-path "/path/to/anything/") (require 'anything-config)
If you do not want to use git but want several Anything packages, related Anything maintainer’s user configs, as well as most of the Anything extension packages use the WgetSnarfAnything wget script.
Or you can use Lisp:auto-install.el (which you first have to install itself as described in AutoInstall) install Anything packages with following:
M-x auto-install-batch RET a n y t h i n g RET
It would be great if it was installable with ELPA (as of 2011/01/25 I actually can install anything from ELPA)
(As of 2011/12/06, on Emacs 24.0.50.1, Anything can be installed using ELPA)
Anything now has a its own mailing list at:
It is visible also in gmane at gmane.emacs.anything
Enter emacs and run M-x anything-for-file
. It is preconfigured anything
to open files.
If you like it and feel the power of anything, set anything-sources
for your taste by copying and pasting bits and pieces from other people’s anything-config files. You may wish to bind ‘anything to a easy-to-type key.
are there any plans to clean up these files? the anything-config file and your own config file are both pretty monolithic, as such it’s hard to modify or extend ‘anything’. Maybe separating things into different files, and creating more ‘helper’ functions would help? for example, isn’t the following a simpler way of creating anything functions, than having them build-in/preconfigured?:
(defvar anything-command-list nil) (defmacro defanything (name sources) (list 'add-to-list '(intern "anything-command-list") (concat "anything-" name)) (list 'defun (intern (concat "anything-" name)) (list) (list 'interactive) (list 'anything (list 'quote (map 'list (lambda (x) (intern (concat "anything-c-source-" x))) sources)) 'nil 'nil 'nil 'nil (concat "*" (concat "anything-" name) "*"))))
(defanything "open-files" ("recentf" "file-cache" "files-in-current-dir" "locate"))
(defanything "emacs-variables" ("emacs-variables"))
(defanything "emacs-functions" ("emacs-functions"))
--CH
CategoryAccessibility CategoryBbdb CategoryBufferSwitching CategoryCalculators CategoryCode CategoryCommands CategoryCompletion CategoryDirectories CategoryDocumentation CategoryEditing CategoryExternalUtilities CategoryFaces CategoryFiles CategoryGnus CategoryHelp CategoryInterface CategoryMenus CategoryModes CategoryProgrammerUtils CategoryRegexp CategorySearchAndReplace CategoryShell CategoryWebBrowser