Next Previous Contents

2. Editors

An editor is a program that allows a user to enter, modify, save and restore text files. Text files are usually defined as files that store ASCII content. Some examples of editors on the Linux platform include vi, gvim, joe, emacs and so on. Some more detail is available at Zdwebopedia.

2.1 What is An Editor

In terms of system software, an editor is a basic element of the operating system that enhances the usability of the machine. An editor allows users to manipulate data at a slightly higher level of abstraction, to deal with elements such as documents without wondering too much about the details of how data is stored on the filesystem, how data can be represented on screen, etc.

2.2 Line, Screen, Graphical

Classically editors can be separated into some well established categories. They are:

Line

This is the oldest and most archaic form of editors. In this type, only a single line of text is allowed to be edited at a time. Examples abound, but are dangerous to name for fear of imitation. To be avoided at all costs.

Screen

In this, the most common form, a screen of text is displayed and the user can edit elements and the display is dynamically updated on screen. A user is able to move within the document and the screen will be correspondingly updated. These are usually rather fast and rather stable(Ever seen vi dump core ? ;)

Examples: vi, emacs, joe

Graphical

In this most advanced form, there is a large (and excessive?) use of icons, the mouse and pretty colors. The net result is that if you are not careful, there is more eye candy and less productive. Most such editors tend to be WYSIWYG (What You See Is What You Get). Some large, well known and expensive editors are often preferred by Gooeey (GUI) users. Some are light and fast. Lyx is also a graphical editor, but WYSIWYM (What You See Is What You Mean). Plug for my favourite editor - gvim is != eye candy and it rocks!

Examples: gvim, xemacs, abiword, WordPerfect 2000

2.3 What kind of Editor is recommended?

Various kinds of editors can be written including barebones text versions with no color right up extremely sophisticated ones using graphics (GTK/Glade). The purpose of writing an editor is for me atleast to appreciate what the programming aspects might be. Towards that end, a simple text editor that is difficult to write will teach you much more than a sophisticated graphics based editor that is trivial to write.

I believe it was Sharat Chandra from BMS who once proved that it required only two mouseclicks to write a functioning editor in GTK using Glade. You can't learn too much from two mouse clicks - no matter how hard you try. You can take a peek at Glade at the Glade homepage.

2.4 What is the functionality to be provided?

1. Edit

2. File Management Ability

3. Block commands

4. Edit commands

5. Colors

6. Help

What are the additional cool things I can put in?

There are lots of nice features (!=bugs ;) that you could add which include. Note this could be a wishlist!

What are the really really cool things I can have fun with?

If you really have no better way of spending your time... Think about these and if you have more or have developed something cool, drop me a line.


Next Previous Contents