efaq: Finding a package with particular functionality

 
 8.2 How do I find a Emacs Lisp package that does XXX?
 =====================================================
 
 First of all, you should check to make sure that the package isn’t
 already available.  For example, typing ‘M-x apropos <RET> python <RET>’
 lists all functions and variables containing the string ‘python’.
 
    It is also possible that the package is on your system, but has not
 been loaded.  To see which packages are available for loading, look
 through your computer’s lisp directory (SeeFile-name conventions).
 The Lisp source to most packages contains a short description of how
 they should be loaded, invoked, and configured—so before you use or
 modify a Lisp package, see if the author has provided any hints in the
 source code.
 
    The command ‘C-h p’ (‘finder-by-keyword’) allows you to browse the
 constituent Emacs packages.
 
    For advice on how to find extra packages that are not part of Emacs,
 see SeePackages that do not come with Emacs.