NOTE: As of Mon, Aug 23, 2010, edictionary is broken. I'm actively working to fix it. Please check back in a few days.


What is it? [top]

edictionary is a dictionary program written in Perl. It can fetch meanings of the words you supply to it as arguments. edict is capable of using one of the many user defined dictionaries to fetch the word meanings.

NOTE: Please note that edictionary uses various dictionary web-sites to fetch the meanings of the words. Please read the "TERMS OF USE" of the dictionary site before you start using it. Don't use the program if you intend to violate the "TERMS OF USE". The author of this program will not be held responsible for any violations/consequences in any way. The program is provided just to facilitate fetching text using HTTP.

Installing edictionary on Unix [top]

Just run the following command in the current directory

make install

This will install the edictionary program in the /usr/bin directory unless you have "prefix" environment variable set. Run make without any arguments to verify that. If you want to install edictionary in a different directory, you can run the above command as

make prefix=/my/dir install

Installing edictionary on Windows [top]

Run the following command in the edict directory

wininstall [<target dir>]

The <target dir> is optional. If you specify a <target dir>, edict will be installed in that very directory.  So you can run the command as


Or you can specify a target location

wininstall c:\my\dir

NOTE: The path <target dir> should be an absolute path. This means you CANNOT say

wininstall mydir

Instead, you should say

wininstall c:\path\to\mydir

Now you should edit your PATH variable to include <target dir>.  Open the System icon in Control Panel and select the Advanced tab. Now, click on "Environment Variables..." to edit your PATH.

Perl on Linux [top]

You need to have Perl installed on your system in order to run edictionary. You can check if Perl is installed on your system by running the following command on Linux

rpm -q perl

This should return something like


If you see something like

package perl is not installed

you'll have to install Perl by downloading the rpm for Perl.

Perl on Other Unix Platforms [top]

Type the following command to find out if Perl is installed on your system

perl -v

If you get an error, Perl may not be present on your system. You should download Perl and install it.

Perl on Windows [top]

Windows systems never come with Perl pre-installed. You'll have to download Perl from After installing  you can verify successful installation by running

perl -v

This should print the version of the Perl interpreter installed on your machine. If, instead, you get an error indicating command not found, your Perl installation failed.

Using edictionary [top]

On most UNIX platforms, you can run edictionary by typing

edict <word>

where <word> is the word for which you want to lookup the meaning.  The first line in the edict source file specifies the path of the Perl interpreter. If Perl is installed in a path different from /usr/bin, you can change it there.

On Windows platform, you'll have to run edictionary as

perl <edict> <word>

where <edict> is the absolute or relative path of the edict program and <word> is the word you are looking for. So an example run can be

perl c:\bin\edict orotund

This will display the meaning of the word "orotund" provided you have Perl installed on your machine and the file c:\bin\edict exists.

Multiple words may be specified as

edict sexist misogynist dinosaur

It is possible that you don't have a direct connection to Internet and use a proxy-server. In that case you can ask edictionary to use a proxy-server by typing

edict -p server:port orotund

If you supply an invalid word to edictionary as:

edict junkword

you'll see the following as error:

Don't understand Swahili words like junkword! ;)

Listing Available Dictionaries [top]

Since 2.0-beta, edictionary supports an option "-l" (small 'L') to list all the dictionaries available to the user.
[user@host dir]$ edict -l
edict - Your personal command line dictionary. Version 2.0-beta.
Name                      Description
mwdict                    Merriam Webster Online Dictionary
mwthes                    Merriam Webster Online Thesaurus

These dictionary names can be used to specify your default dictionary in the configuration file.

Suggestions/Alternate Meanings [top]

Suggestions and alternate meanings are available starting edict-1.0-beta2. You don't have to do anything to turn on this feature as it is automatically turned on. All you have to do is to use the edictionary to view the meaning.

Let's say you type the wrong spellings for the word dyslexia. You'll get the suggestions as:

C:\>edict dyselxia
Don't understand Swahili words like dyselxia ;)!!
Suggestions/Alternative meanings
1) dyslexia                   2) dyslexias
3) dyslexic                   4) dyslexics
5) dieselize                  6) dismally
7) Disraeli                   8) decillion
9) disrelish                 10) dustlike
Your choice: 1

You can then enter the numeric code for the correct word you want.

Similarly, edict also offers you multiple meanings (if any) for a word.

C:\>edict catch
.... meaning text ....
Suggestions/Alternative meanings
1) catch[1,verb]                2) catch[2,noun]
3) catch-as-catch-can           4) catch on
5) catch out                    6) catch-22
7) catch-up[1,adjective]        8) catch-up[2,noun]
9) catch up                    10) circus catch
Your choice: 6


Thesaurus Support [top]

Staring with edict-1.0, thesaurus support is also available. You can get the thesaurus entries for the word "laconic" by executing the command:

ethes laconic

Rest of the usage is similar to that of edict.

Configuring edictionary - .edictrc [top]

Using the command line options in edictionary to accomplish everything is sometimes painful. Aliases work for some shells, but still don't do everything or do everything as smoothly as you would want them to. I guess, many saw a configuration file feature in edictionary-2.0-beta coming. Each user can now have a separate configuration file to alter the behavior of edictionary. The configuration file is not required for edictionary to operate. However, if present, it will alter the behavior of edictionary, hopefully in a positive way :).

There are two types of configuration files - per-user and system-wide. Under the Unix or Unix based systems, the per-user configuration file is $HOME/.edictrc, where HOME is an environment variable that generally points to users' home directory. The system-wide configuration file is /etc/.edictrc. Under Windows, the per-user configuration file is $USERPROFILE\.edictrc and system-wide file is $SYSTEMROOT\.edictrc. If the environment variables USERPROFILE and SYSTEMROOT are not present on your Windows platform, you must define them lest edictionary will ignore your settings.

If both per-user and system-wide configuration files are present, both are read. In case of a conflict, the per-user settings take precedence over the system-wide settings. If edictionary finds an environment variable named EDICT_CONF, it will try to interpret it as a list of colon separated configuration files. The settings in these files will be applied  in the given order of file names. Thus, the files listed later can override the configuration directives of previously listed files. edictionary will not try to read the standard configuration files in that case.

The general syntax of the edictionary configuration file is:
<var> = <value>
where <var> is one of the predefined configuration variables available and <value> is the value the user wants to assign to it.

dict = <dictname>
This will change your current dictionary to <dictname>. If your current dict doesn't match any of the edictionary's dictionaries, it will resort to the default dictionary, which is "mwdict". In such a case, edictionary will also display an error message. You can discover the available dictionaries using the command described here.

suggperpage = <n>
This will make edictionary display no more than <n> suggestions per page. This is intended to make suggestions readable for users who have small terminals. The min value of this is 2, max is 20.

suggest = { yes | no }
This will turn the suggestions on or off. The default, if nothing is specified, is 'yes'.

httpproxy = <host>:<port>
This will let the users specify a proxy server for HTTP communication.

color = { yes | no }
This will enable/disable printing of text in color.

Example configuration file:

NOTE: No configuration file is supplied with edictionary. The user needs to create one manually, if required.
Happy edicting!

SourceForge Logo

Copyright (c) 2002-2004, 2010, Vishal Verma