Confession ------------- I have tried to write my own text editor. I succeeded, yet failed. ### Lame I mean really... who the hell, in this modern day and age, writes their own text editor?[^1] Additionally, when said text editor is written, who the hell writes one with separate [interaction modes][viway]? Long story short: my editor was a lame clone of the EDT editor[^2] in vogue... well, never. #### Why? I would like to take this moment to write off my sinful ways to youthful numbskullery. That is, there was a time when I thought that I shat programmatic gold and anything written by hacker A could be improved upon by myself. Why the hell should I use Pico? I could do better than that! Nano? Gafaw! Emacs? Eight Megabytes and Constantly Swapping! LOL! What a human buttwipe I [was][am]. The Results -------------- I suppose it was a nice learning process to write my own editor and all of that noise[^3], but fruit of my labor has left me wanting... yearning[^4]. That is, not only do I have a pile of C code that even Notepad scoffs at, but I have not taken it on myself to actually learn an editor that [would][j] [happily][vim] urinate all over my sad effort. My life would have been better served had I ignored my inner dickweed and simply learned what the heck a Meta-key [was][am]. #### My continual lameousity I have since learned my lesson, scraped my horrible source code[^5], and attempted to pick up Emacs. There is one giant problem however; I am so corrupt with the ways of a thousand editors, that Emacs confuses the piss out of me. I get along alright I guess, but I *have* experienced that awe that most Emacs n00bs feel whenever they sit down with a true master. That is, my boss and I sat down recently to hack through some source and I was astonished to see the way in which he utterly tore through Emacs with the intensity of a 1000 ninjas on fire -- I mean the guy has bucky bits coursing through his veins. I felt like crying.[^6] Think of it this way: he was fluently speaking Emacs, while I only know how to say "where is the toilet" and "I are American". Perhaps this proficiency comes in time, but damn! Where to go from here -------------------------- They say you can't teach an old dog new tricks. I'm actually not that old, but I am certainly mangy. Perhaps there is hope for me yet. However, I have to be much more systematic about my Emacs education: #### Live in Emacs There is a slight problem here. That is, I do 98% of my work on OSX boxen and my Emacs of choice is the lickable [Aquamacs][aqm]. The problem here is that it is too easy to fall into the old mousey habits[^7] this way. Therefore, it might serve to use the command line Emacs instead, or perhaps burn myself with cigarettes every time I hit Apple-S instead of Cx-Cs. Need a shell? Mx shell. Need a browser? [W3][w3]. #### Read about Emacs My biggest problem with Emacs is that I have very little idea what it's capable of. In the months that I have dabbled it appears that [it can do anything][xkcd]. That knowledge is not extremely helpful however as I have some practical goals that need to be addressed (e.g. [IDE-ness][jide], notetaking, etc...). I have to really sit down and do some research these issues. #### Extend Emacs I had written a [stupid little minor mode][bmode] for my hobby language [Broccoli](/projects/broccoli) and have found the available references on creating minor/major modes in Emacs much akin to drinking flaming Bacardi 151[^8]... from a firehose. To a n00b, everyone seems like an expert. #### Stop complaining 'nuff said. -m [w3]: http://www.gnu.org/software/w3/ [viway]: http://vimdoc.sourceforge.net/htmldoc/intro.html#vim-modes-intro [jide]: http://www.ibm.com/developerworks/java/library/j-emacs/ [am]: http://twitter.com/fogus/statuses/866151340 [xkcd]: http://xkcd.com/378/ [j]: http://armedbear-j.sourceforge.net/ [vim]: http://www.vim.org/ [aqm]: http://aquamacs.org/ [bmode]: http://www.flickr.com/photos/fogus/2607857873/in/set-72157603453823388/ [^1]: A quick search on SF.net will dredge up tons of lame-ass editors. [^2]: To be fair, I'm sure that EDT was a great editor at one time, but I grew up during the birth of ubiquitous computing and things like VMS seem akin to unicorns and elbow witches. [^3]: Rolling your own gap buffer is something every first year CS student should do right? [^4]: Sometimes I just sit and yearn. [^5]: It stills sits in an old CVS repo... the bitwise equivalent of purgatory [^6]: There's no crying in Emacs. [^7]: I feel that the amount of time that I spend moving my hand from keyboard to mouse accounts for 13% of my day. This is really ridiculously inefficient given that I already feel like I have ADD induced by the constant stream of Internets chattering. [^8]: Bacardi 151 is for me the epitome of evil. Any *brown* liquor is evil, but 151 is like the gaping maw of Satan devouring my soul.