How emacs keeps replacing my tools at work
Tuesday, February 17, 2009 8:22:49 PM
So how did I end up from the vim camp to daily emacs usage?
It all started with Common Lisp. Pick almost any book/tutorial about Common Lisp and You will soon find that emacs is almost a requirement for keeping up with the material. I know that now there is limp but I started before it appeared.
So I decided to try Emacs at least for Lisp development. I must say that Emacs + SLIME just swept me away from vim. I didn't know much on how to use both of them but enough to keep me going. So time passed and I found myself reaching for Emacs more often. Learning slowly the parts I needed for my current tasks. I never spent more time to actually learn the editor itself.
The real switch happened where I didn't suspect it. At my current workplace. When I got hired I tried to use vim for my daily tasks but soon realized that it didn't work out so great for me. First of all it required some configuration beyond the time I could invest to do so. Secondly I had to tab over many applications to do my work (WinCVS, SQLPlus, a web based production planning system, PL/SQL Developer etc.). So I gave up with vim for a long time. I still kept it around to do those casual quick macro file conversions.
Then I got feed up with SQLPlus drawbacks. No command history, no syntax highlighting, no in-line editing of already entered text and no nice (quick) way to navigate for files on the hdd. At the same time I discovered that Emacs is bundled with a SQL-oracle mode.
The mode is a wrapper over Oracle SQLPlus additionally fixing all the problems I had with it.
So I decided to keep Emacs running all the time just for this functionality. And guess what happened? It's still running but is replacing much more than SQLPLus...
Warning, some of the hyperlinks in the following text lead to images. All of them are strictly topic related and are a result of Google hunting. If You are the author of some of them and want credit just drop me a line in the comments/jabber/mail.
As I started to use the editor on a regular basis I kept bumping into more modes that happened to integrate perfectly with my development needs.
Here is a short list of the applications that Emacs replaced completely or is in progress of replacing in my setup:
Obviously. I already told You about it
- Total Commander
Emacs dired mode allowed me to skip this application. I can handle all of my hdd navigation/manipulation without ever leaving the editor.
Emacs ediff mode. I don't know why but it better suites my work-flow. I can now easily back-port changes that can't be merged by the version control system. I even grew some additional macros/functions to handle more tricky (application specific) situations.
- PL/SQL Developer
Emacs ide-skel, sqlplus and plsql. These modes allow me to:
- List tables, views, packages, triggers etc on the database.
- Get sources of all of the above objects.
- Compile PL/SQL code with errors marked within the editor
- Have query results nicely formatted
This one was a little bit trickier. We use a custom plugin for each commit done to the repo. I basically use vc and pcl-cvs and my custom wrapper implementation for the plugin functionality written in elisp. Works flawlessly.
Emacs grep just works the way it should. Instant navigation between search results and the match is priceless.
eshell and other command line modes completley killed the need to fire up the cmd.exe shell.
I don't need to open up cmd.exe to check this information. Just M-x ipconfig/ping/traceroute and it's all here where You need it.
- Custom functions that retrieve information from the web based production planning system.
- Evernote/Remember the milk
I use those applications to track my activity and current side tasks. Emacs org-mode completely replaced it. It integrates todo-lists, calendars, schedules, tables, outlines and more. Check it out.
Emacs calendar mode replaces all my needs to quickly lookup a date and do date calculations.
I also wrote some simple additional scripts on my free time.
A quick hack to count SLOC in PL/SQL files. It allows me to quickly count SLOC, comments and blanks in the current buffer or over all the marked files in dired mode. I recently extended it to support counting those stats for elisp.
Another example is a script that is now used to fill in missing documentation in WSDL files based on existing XSD documentation and from source code.
I also tried to replace my jabber client with jabber.el plugin for Emacs. Unfortunately there is a problem with the SSL certificate of my companies jabber server that Psi can handle and jabber.el currently seems to not.
I edit a wiki from time to time at work so mediawiki.el is also tempting to try.
So to sum things up. I wanted to replace SQLPlus and ended up replacing almost all of my development tools also gaining additional ones that boosted up my productivity. Suddenly my work got more interesting.
This was supposed to be a quick writeup but ended up longer then I expected. I'm off to finish setting up Emacs on this PC as it's mostly occupied by my fiance which loves to play Final Fantasy VIII and she will get back home tomorrow .