Some people prefer Vim for their text editing, please take a look at my friend, Noel Cower’s blog discussing the merits of Vim.
It would seem like a step backward to some people to work in an environment that offers little visual flash when editing code and files. The very same people often recoil in horror when they are plunged into a command terminal interface and told to configure something without the aid of bright over-glossed million color icons. To other people, the lack of clutter is the very reason for using such tools as Emacs or Vim. When I attended college, I often took notes using the little known Microsoft DOS text editor called “edit”. I found that I could focus on the lecture much better if I simply ran the program in full screen mode. In this way these full screen text editors let a person focus on what matters – the text or code.
These programs DO require something of the user. They must learn and retain command information. Honestly I found it interesting and challenging to learn to use Emacs. Perhaps the most immediate benefit is the speed gained from never having to take your hands off the keyboard to move the mouse. Emacs offers many different ways to move the cursor around your work without ever having to touch a mouse. It also offers ways to select move and modify selected blocks of text. Some implementations do use the mouse.
Speaking of selecting text, perhaps the most useful of all selection tools in Emacs is the ability to copy, move, and paste “rectangles” of text. If you are working with column based data this is an invaluable tool for easy editing. This is a great addition to the table making ability of Emacs. You can copy and paste cells in tables easily. Yes, Emacs also offers ascii art tables which are very handy should you be making plain text tables as one might in some source code commentary. There are many hidden features to be found.
Speaking of hidden features, Emacs offers games, a file utility, compiler support, multiple programming modes, a calculator, a lisp evaluator, and an internet relay chat client. I found the client by mistake actually Emacs: The text editor where a simple typo spawns a whole unknown feature. I now use Emacs both on Windows and Linux to do my IRC chatting. I simply type Alt+x (to get into command line mode) and then enter “erc”. Another great feature of a text based editor is the ability to run across any terminal connection. Emacs adapts itself to the terminal specifications and may offer special features should your terminal support it. I used ssh to run a pure text Emacs secession on my home computer from work. It allowed me to compile some C code for an nCurses tutorial book I was working on.
If you are running a graphical desktop, Emacs will also let you run a special n00b friendly GUI implementation. Most seasoned users will be comfortable enough in the text only mode. Both feature the same editing commands.
Is Emacs right for you? Honestly, I don’t know. It takes time, dedication, and some hefty memorization.
If you enjoy learning to use tools and are strong willed then yes, for sure it is.
In the spirit of being traditional I have hand coded these tanks into my game point by point.
I’ve eliminated the grid to show them off a bit better. Currently I’m fighting visibility vs detail. The ground grid has a nice effect but around the horizon it really starts to block things in the distance. Anyway here is the tank that has been coded into the game. I have no idea how to do the collisions from scratch so I will probably have to implement a solution like Box2D. I feel pretty bad about not having the math skills to code complex polygon collisions. I really envy people who have had a chance to really understand the complex math. Understanding breeds more understanding. Often a simply hurdle will prevent us from reaching full potential. If you look at what you have learned as an unfolding tree each unblocked branch leads to further branches and further learning.
Ahem, I’ll now just shut up and show the picture. The first person view from the turret is a bit ugly I admit, but it is technically correct.