Good Web Development Environments with UTF-8 Support?
A Pride of Lyings asks: "I'm having a devil of a time finding a good editor or IDE aimed at HTML/XHTML/CSS/JavaScript/JSP/XML that meets the following criteria: CVS integration (VSS integration would be nice but not required); stellar UTF-8 support (internationalization is a big big deal now); correctly recognizes and highlights HTML, JSP, JS, and CSS within a single file; does some rudimentary auto-completion; is easily configurable; runs on Win2k (oy vey); supports bookmarks of various kinds; supports code collapsing; and affordable. I'm at a loss and rather fatigued from kicking all of these tires, so I'm throwing it open to you: what do you use for your front-end work? What makes it good?"
What you're asking for is Emacs then? No holy war here, it's entirely possible that vi could do the same.
As far as I can tell, BBEdit does all that under Mac OSX.
I'll admit I almost never edit locally. It's almost always a remote ssh session to a server halfway across the world, so I have no in depth knowledge of windows editors. But I've used Emacs (Xemacs actually, in text mode remotely) to do the bulk of what you ask other than UTF-8. A quick google search seems to indicate that it's cool for UTF-8, and it does, in fact, run under win2k.
Vim is great because it has folding, autocomplete, abbreviations, macros, objects, modes, regular expressions, window splitting, multiple buffers, session, network editing, file explorer and lets you keep your hands on home row!
i pt_id=29
i pt_id=58
i pt_id=182
It also supports every single feature you have requested, and a ton you didn't, and has consistant highlight, feel across all langauges and platforms -- it is wonderful!
VSS integration plugin: http://vim.sourceforge.net/scripts/script.php?scr
CVS integration plugin: http://vim.sourceforge.net/scripts/script.php?scr
Word (and Sentence/Phrase) Completion is built in, but if you want it to work when you hit tab use: http://vim.sourceforge.net/scripts/script.php?scr
http://vim.org -- get it now!
http://www.jedit.org/
It does everything you're looking for via plug-ins that can be installed in the user interface. It's a bit slow to load due to the Java related bootstraping performance, but it works like a pro. I use it's FTP integration and built in support for Tidy to administer my web sites.
I know there's a way to do the multiple source code highlighting schemes in a single file but I haven't gotten around to setting that up, yet.
It would be better to break the requirements down. Individual editors would provide you with more options for each language. However, a simple text editor and good modularization would probably be better for your project.
UltraEdit for Windows is my personal editor of choice. I don't believe it supports every feature you want, but it does support many. I use it for all of my web development/programming needs.
Emacs 21, with the addition of the Mule-UCS package, can edit and display files in most encodings, including UTF-8 and UTF-16, containing characters from all of the Basic Multilingual Plane (display depends on available fonts).
For multi-language syntax highlighting, you can look at the Multiple Major Modes package.
For XML support, you need the psgml package (a recent one).
And, of course, you have speedy navigation (i-menu and speedbar), code collapse (outline and similar modes), CVS integration (pl-cvs and vc), bookmarks (including frame/window configurations, via registers and bookmarks), and it's free (GNU).
Oh, and it does run on Win32.
dakkar - mobilis in mobile
Sounds like a pretty good fit for Dreamweaver. I think MX does JSP, and I'm sure that it does all the rest. It's got a pretty nice interface and is pretty easy to use. I'm not a big Windows user, but I like Dreamweaver a lot.
Software sucks. Open Source sucks less.
Try Idea by intellij. I know it is more of a pure java development environment but it has all of the requriments that you are looking for. My company uses it for all of their development(java, jsp, html ) and thus far we have been very very happy with it.
I've used Eclipse on W2K and it just plain rocks, but it's (AFAIK) very Java-specific. Maybe there's a good web development plugin for it though. Eclipse is an impressive piece of software (OT, I know).
JEdit does (most of) what you want. Even better, it's free. Even better, it's open source, so the stuff it might not be able to do as well, you can make it do. As the name suggests, it's Java. It's largest strength is its plugin system, which is where many of the advantages come in.
CVS integration (VSS integration would be nice but not required)
JEdit plugin called 'Gruntspud' provides CVS access.
stellar UTF-8 support (internationalization is a big big deal now)
Honestly, I have no idea. Coming from Java roots, I would assume that it has this; if not, it could definitely be added on.
correctly recognizes and highlights HTML, JSP, JS, and CSS within a single file
JEdit has a real beaut of a syntax highlighter; using XML configuration files, it parses the highlights the text accordingly, and (here's the best part) the XML files can be self referential -- which is where a number of other syntax highlighters fall down. For instance, in a typical PHP page, you may have PHP code, Javascript code, and HTML code. JEdit handles this. The XML files can be modified to do just about anything, and are relatively easy to pick up. As long as you can give it some rules about what to look for in terms of start/stop text, you're good.
does some rudimentary auto-completion
Eh. It finishes tags for you. There's an autocomplete plugin out there for Java; one could be put together pretty easily, for, say, Javascript objects.
is easily configurable
Check. And open source.
runs on Win2k (oy vey)
Check.
supports bookmarks of various kinds
Check (they're called markers)
supports code collapsing
Check (they're called folds)
and affordable
Free.
Now, there are some annoying bits: it's Java, so it's slower than others might be, the file finder in JEdit could not be worse if it tried, and the XML files for Javascript parsing needed some tweaking before they'd work right right out of the box, and there's no way to jump to a specific window via the keyboard (eg, on Windows, Alt-W, ) (instead, it has Ctrl-PgUp and Ctrl-PgDn to cycle through the windows, and some hacks that require 4+ keystrokes are possible), but, overall, JEdit has been good to me. Of particular note is that it's search/replace is the best I've ever seen, having normal searches, regex searches, searches through all open files, searches through a directory and subdirectory, etc.
09f911029d74e35bd84156c5635688c0
Eclipse found at www.eclipse.org. Does much of what you want. First class CVS integration, VSS integration. It has all kinds of plugins for editors. XML and JS for starters. It is primary a Java editor, but it very extensible. I consider it the new Emacs. It is also getting better all the time, with widespread developer support.
yudit is quite nice, as well as the new vim and emacs. An interesting exercise is to run ascii, utf-8, and utf-16 LE and utf-16 BE (little and big endian, respecitvely) representations of the same text (say a 2-line text message) through
% od
and see what's really being stored in them thar files.
There's also a whole bunch of useful tools in the ICU (no, not the Intensive Care Unit!) with links to the openl18n pages. In terms of being extremely informative, from the top-level overview of internationalisation of software down the the greatest technical detail you can actually use -- including a really useful set of software libraries with source code provided , I can't recommend the ICU pages highly enough. Context plus details in context. A revelation.
jEdit is quite powerful. Also, you can pretty much just start using it, it's so easy. There are Emacs-style key commands, but there are also easy to use menus, configurable toolbar, and the keyboard can be remapped. Learning how to use new feautres involves looking in the online help and the options screens, and then immediately using the newly discovered feature without any problems.
>Eh. It finishes tags for you. There's an autocomplete plugin out there for Java...
The autocompletion does more than finishing a tag when you type a less than and a forward slash. There's a plugin that pops up an autocompletion window for you Java methods, which is not perfect, but is useful. And for regular autocompletion of words, just type part of a word and hit control-b. If the word has appeared before in the document, it will be autocompleted if there's no ambiguity, otherwise you'll get a popup that lets you choose. It's fast and accurate.
You can have a primary *and* an alternative key shortcut for any built-in command, any plugin, and any macro. Your key commands can be things like ctl-e, ctrl-a in succession, or even ctrl-shift-e, ctrl-i. Bring in the alt key also.
If you want to switch among buffers without taking your hands off the keyboard, remap the buffer commands and you're done.
Emacs does more, but right now Emacs doesn't do anything I need that jEdit does not do. And jEdit is easier to deal with. And does column selection and pasting. But, to repeat, unlike the hugely powerful Emacs and Vim, there's basically no learning curve.
I'd be interested if you reported back when you have found the perfect editor. Because then we'll all use it, because it will be perfect for everybody, and there will be no more discussion of editors on Slashdot.
Indeed Vim rocks! Not only does it have blinding speed, but with some effort, it can be made to do almost anything. I'll respond specifically to each feature requested:
However...
...although other posters have already pointed out various scripts you can add to give you the features you want, you can also try my pre-assembled package of scripts for Vim, Cream. It makes Vim keyboard shortcuts nearly CUA-compliant (Ctrl/Alt/Shift + letter) and otherwise masquerades Vim as a more familiar feeling power text editor. Most long-time Vim users barely recognize it, but Apple/Windows users will find it much more familiar than the sometimes cryptic Vim.
There is no need to use a SlashDot sig for SEO...
Good grief, is Emacs really losing the editor wars?
;-)
Or perhaps it's just that the vi(m) people are very defensive...
My primary editor for quick changes or extensive text manipulation when working with the filetypes mentioned is gVim. That has already been well discussed, I wanted to mention a few other things that I end up using a lot. :)
1. VS.NET -- Really darn expensive if your shop doesn't have an MSDN Universal subscription, but it handles everything minus JSP with ease. Very sophisticated syntax highlighting and autocompletion, a very good JavaScript debugger, graphical HTML layout, decent CSS editing. It can handle Java syntax through it's JSharp roots, but it ignores JSP. There might be a way to kludge that, but I don't know.
2. CodeGuide is fantastic at Java and JSP. It can syntax highlight HTML as well, but it doesn't do much for JavaScript/CSS. It is the best debugger for Java I've ever seen. Priced at $500, it was well worth it for me.
3. TopStyle Pro is the best CSS editor I've seen out there. So many features. $80.00
All I wanted was a rock to wind a piece of string around, and I ended up with the biggest ball of twine in Minnesota
My company is just about to implement a full UTF8 i18n web development environment, so I have fought a lot of the wars!!
1. Do a hard-line review on every underlying application layer and/or middleware for UTF8 compatibility. We discovered the dB was UTF8 compliant, but the local client dB drivers had issues sometimes. Do individual tests with all types of UTF8 data.
2. Always test with some multi-byte charsets, like Chinese or Japanese, whichever one you might support soonest. Using multi-byte Japanese helped flush out some problems that might have killed us later. It also helps flush out applications that say they are UTF8, but wind up doing some UTF8->ISO8859->UTF8 conversions. You may never implement Japanese/Chinese/etc, but you will definitely be UTF8 compliant.
3. Arial Unicode MS is a great UTF8 font which has all sorts of languages. Other Unicode fonts may only have European languages. Warning: approx 22MB in size. Yes, it is MS Windows centric, but if you are going to pass around "please translate this" documents, everyone using Arial Unicode MS will pay major dividends later. You wont get translations in other random charsets to convert (or discover during testing)
4. If you can, try to store translations in a database and retrieve them as needed. If all translations are in a database, its easily transferable to your next development environment, without having to parse through gobs and gobs of dictionary/translation files. If you are worried about performance of hitting the dB all the time, do a nightly "pre-processing" of "static" content and partially generate each languages content pages in html.
4a. As for translation documents, I have built Excel spreadsheets with columns for language name and translation. Using Excel, you can create SQL scripts that will insert the data into your dB.
5. Forget what I said about translation documents, and try to build interfaces into your code to update text on the web application for different languages. It will eliminate the document passing around, and someone can see the results of their translation pretty quickly.
6. If you HAVE to store data in another charset, always display as much UTF8 to the user, and only convert at the backend. We used a charset converter helper application (Chilkat Charset.Net) to devolve our UTF8 text to ISO8859 for one recalcitrant CRM
7. Be wary of the "Byte Order Mark" for UTF8 text files, "ï". Its a character triplet at the beginning of SOME UTF8 files. UTF8 compliant versions of Notepad save it, but dont display it. You can see it VI, but it may not look like it. Use of it is inconsistent, but you will run into it every so often. In our testing, we noticed IE liked to see it at the beginning of the HTML file for use when you have Auto-Select for Encoding in your IE client. (Even if you explicitly set charset to UTF8 in your meta tags)
Em@il me at ckmehta +at+ hotmail DOT com, if you have any embarrasing questions, you dont want to post.
Emacs is not cool with UTF-8, they are just beginning the first steps for it. Yes, Emacs can read and write UTF-8 files, and it knows how to decode a UTF-8 stream into individual characters and Unicode charactor codes. But it cannot display most of these charcters, so they end up being just boxes on the screen. Sure, being able to load and save UTF-8 files is part of working with UTF-8, but one of the key requirements of an editor is being able to actually display the text in the file.
It's very frustrating. I have a Java program that includes strings of japanese characters, but I must use one of the Japanese-specific encodings under Emacs to edit it, which locks me out of adding (for example) Cyrillic characters. When I convert to UTF-8 with another tool and load in emacs, all the japanese characters are boxes and entering japanese characters isn't allowed.
I develop in Japan, mostly for a Japanese audience. We use Apache -> Weblogic & Oracle 9iAS -> Oracle 9i, all glued together with a pile of other stuff. Never quite found an editor that solves every problem, but Eclipse and jEdit are both pretty good as a start, as is Oracle jDeveloper if you're an Oracle shop. Half the time I end up putting HTML pages together using Visual Studio (*gulp*), as the HTML editor's predictable in Japanese. I predict that whatever you choose, you'll end up running something else alongside it, and then something else alongside that, etc. Only advice I have is that encoding standards are great in theory, but the implementation of them is uniformly appalling, no matter where you look. One hint is to get a native language speaker to proofread non-Western character based pages, as they can look perfect but still be garbage. Another tip is, if you're doing Japanese, develop on a native Japanese OS. I guess that applies to Chinese too. Don't trust a foreign language-ified 2000 to behave exactly how native 2000 would. Welcome to the party...
Well, it is XEmacs to be exact. MULE-UCS works just fine for editing UTF-8 Chinese text. Only needs to call (un-define-change-charset-order ...) to use Chinese fonts for Chinese character, instead of the Japanese fonts, which shows the same characters but doesn't look pretty for a Chinese person.
Not sure I understand code collapsing the way everybody does, but Homesite supports it.
:)
Select any amount of code, on the left margin will be a black vertical line as long as your selection.
This line will be delimited by two small grey boxes (not sure how to call them)
Click on one of these boxes to hide your selected code, thus creating a collapsed tag.
However, by all means, I DO NOT recommend using this feature since its slow as hell!! I have a somewhat decent computer and I really notice a difference in speed when working with collapsed tags.
Instead, you may want to use bookmarks (using CTRL-K to set and CTRL-SHIFT-K to cycle thru)
Just my 2c
If you look like your passport photo, you're too ill to travel. - Will Kommen