An editor or text editor is an application which can save textual data entered by a user as a file in a computer's permanent storage. Some editors handle code such as HTML and CSS better than others; here are a few commonly valued features for consideration in case you're trying to choose your own editor (some can be combined while others are mutually exclusive). Note that this list assumes you are not considering editors which cannot edit plain text (don't).
- "Design Mode" or "Design View" to visually edit a visual interface (visual editing)
- lack of visual editing, above (text-only)
- syntax highlighting for relevant languages
- user's lack of need to memorize a key command for every action (mouse-oriented)
- user's ability to keep hands in the standard position (keyboard-oriented)
- files edited in the browser and saved to a server (cloud-based)
- files edited in a single-purpose editor and saved locally (traditional)
- user's ability to add functionality (reprogrammable)
- integration with revision control
- centralized revision control, such as CVS or SVN
- distributed revision control, such as Git or Mercurial
Out of all these characteristics, only two are essential; get a syntax-highlighting, text-only editor that works on your platform. Features that are nice to have include revision control and reprogrammability. And the rest depend on personal preference: mouse- versus keyboard-orientation; centralized versus distributed revision control; cloud-based versus traditional. The following table shows the features of some common recommendations.
revision control | reprogrammability | mouse vs keyboard | platform(s) | comments | |
---|---|---|---|---|---|
Komodo | centralized: CVS, SVN, or Perforce | Python, JavaScript, and keybindings | mouse | cross-platform | free and paid versions; free version very vocal about paid version |
gedit | none | plugins and a console | mouse | GNOME on Unix-like systems | |
TextWrangler | none | AppleScript and keybindings[1] | mouse | Mac OS X 10.5+ | |
Notepad++ | none | macros and plugins | mouse | Windows | |
PSPad | centralized: SVN via extension scripts: [1][2] | see manual, section "Customize PSPad" | mouse | Windows | |
Emacs | many options | Emacs Lisp (elisp) and keybindings | keyboard | Unix-like (Cygwin can make it work on Windows) | |
traditional vi | unknown | vi macros and keybindings | keyboard | Unix-like (Cygwin can make it work on Windows) | Many installations these days are actually a stripped-down version of Vim (see below) |
Vim (Vi Improved) | Many options via plugins | Integrated scripting language (vimscript) | keyboard | cross-platform | |
Cloud9 | depends on the hosting service | unknown | mouse | cloud-based, cross-browser, runs in Node.JS on any operating system | |
Bespin a.k.a. Mozilla Skywriter | depends on the hosting service | unknown | mouse | cloud-based, cross-browser, unknown server configuration | merged into Cloud9 |
See also: Comparison of text editors, particularly the Programming features.
Any text editor that supports a common encoding such as Unicode or ASCII should be able to write HTML and CSS documents, provided that it is allowed to save with the .html
and .css
file-extensions. The default text editor on Windows is Notepad; Mac appears to lack this feature and users of Macs will have to resort to other editors, such as TextWrangler. Other editors may have better support and more features than the default programs. They can be for free or for a price. They can be WYSIWYG, plain-text, or hybrid. WYSIWYG simply means that you can see something similar to how your page will look in a browser, and little or no skills are required to write pages.
Although incompliant with W3C standards, Microsoft Word serves as a WYSIWYG but is actually a generic word-processor and desktop-publisher (both fields originally being targeted to printers); it is sold with Microsoft Office. On the other hand, plain-text editors require knowledge of HTML or CSS and are widely recommended over WYSIWYGs for various reasons, not to mention generally free of charge. The canonical example is Notepad; another option is Aptana Studio (available as an Eclipse extension) which is designed for Web development, but can be extended to develop in other languages such as Java and ANSI C. Hybrids combine the features of both. Adobe Dreamweaver is an example of a hybrid, sold as part of the Adobe Creative Suite and capable (to an extent) of several Web languages including PHP and JavaScript; like Microsoft Word, it is warned against by the typical developer.