To end my series of blog posts about Emacs vs. Eclipse/Sigasi, I am
interested to hear what you think: are there any _technical_ reasons
why Emacs is still better than an IDE solution? Or is it just a matter
of "I love this tool and nobody is going to deny me my rights?"
Well, I think I could characterize myself as a fairly competent Emacs
user. However, just for fun I have just downloaded Sigasi 2.0 to look
into whether it could replace Emacs for my VHDL editing tasks.
However, do be aware that I've used Emacs as my main editor since
about 1998. So this is not likely to be a very fair comparison since I
haven't used Sigasi for more than an hour or so by following the
tutorial and trying it on one of my own VHDL projects.
What follows are some notes from my testing and what I find missing as
compared to Emacs. Of course, some of these features may be present
but not working in exactly the same way as in Emacs which is why I
didn't find them.
* When using Emacs I can just type "emacs filename.vhd" (or an alias
for emacsclient if I expect that I will need to look into a lot of
different files using the same editor instance).
I'm not sure how to do this in Sigasi. Merely typing sigasi
filename.vhd doesn't seem to work at least and sigasi -h or sigasi
--help didn't give me any indication that it is possible to do this
from the commandline easily.
* It was fairly easy to find and enable the Emacs key scheme which
made it quite a bit more comfortable to use for me. Good.
* Incremental search worked as expected when pressing C-s and
C-r. However, some useful commands in Emacs are not present. Of this
the greatest loss is C-w (which adds the string following the cursor
to the search string). Very convenient when you want to search for
the word you are currently looking at. Nevertheless, merely the
presence of an easy to use incremental search is a big plus.
* Ctrl-g didn't work to abort a search and return to the start
location of the search as expected. However, Ctrl-x Ctrl-x worked as
expected which is good.
* I use M-q in Emacs all the time when writing text (for example in
the form of comments) to make sure that the text is nicely aligned
and doesn't exceed a user configurable number of characters per
line. (Usually a little less than 80.) In Sigasi M-q doesn't seem to
do anything.
* There doesn't seem to be any kill ring functionality. (Or similar
history functionality for other commands such as search.)
* The keys for rectangular cut and paste and string rectangle don't do
anything. (Neither the standard keybindings nor the cua-mode version
where you press ctrl-enter to start a rectangular selection.)
* I couldn't find any keyboard macro functionality
This is actually
a really big issue for me. If you don't have macros you can't do a
lot of really really neat tricks. While I don't use keybaord macros
every day, they can really save you a lot of work in some
situations. See the following youtube clip for some inspiration:
* C-x C-b worked to select the buffer as expected. Good! (However, it
is not as powerful as iswitchb-mode in Emacs.)
* I turned off the Emacs keybindings to enable the use of C-SPACE
for template insertion. I'm somewhat skeptical about how these are
implemented, but I admit that this may be because I'm not used to
them.
* After trying out C-SPACE I changed the keys back to Emacs again. But
this change didn't seem to take effect. Perhaps I did something
wrong? A restart of Sigasi didn't fix it either.
* When opening an existing design which included components written in
both VHDL and Verilog there was no support for Verilog at all in the
editor. (Since I use both Verilog and VHDL fairly frequently this is
an issue for me. If you use Verilog rarely it may not be a big
problem though.)
All in all, Sigasi seems to be a major step up as compared to some
other VHDL editing solutions (for example, I'd much rather use Sigasi
than the ISE text editor). However, it will not replace Emacs for me
anytime soon I'm afraid.
The main reason why it is very hard to get me to change from Emacs to
some other editor is that my entire workflow is based around
Emacs. This allows me to utilize the same skill set regardless of
whether I edit Verilog, VHDL, HTML, C, shell script, or MP3
files. (Yes, I have done some simple editing of MP3 files in Emacs in
some situations.)
In addition to text editing I'm also using Emacs for reading mail,
organizing my schedule, and dealing with my TODO-list. I often find
myself running a shell from within Emacs as well. (The unix shell
running in split screen with a scratch buffer in Emacs can do some
really powerful things when combined with macros.)
I could probably spend another hour here merely listing some nice
Emacs tricks but I think I'll end here by wishing you good luck. While
I don't expect many die hard Emacs users to switch to Sigasi I think
you may have a good chance of snatching up people who only use Emacs
for VHDL editing.
regards
/Andreas