gergelypolonkai-web-jekyll/_posts/2016-11-03-how-i-started-wi...

99 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
layout: post
title: "How I started with Emacs"
date: 2016-11-03 09:58:41
tags: [emacs]
published: true
authon:
name: Gergely Polonkai
email: gergely@polonkai.eu
---
Sacha Chua has a nice
[Emacs chat intro](http://sachachua.com/blog/2013/04/emacs-chat-intro/) article
back from 2013. I write this post half because she asks there about my
(OK, anyones) first Emacs moments, and half because I plan to do it
for months now.
I wanted to start using Emacs 6(ish) years ago, and I was like
<kbd>C-x</kbd> what”? (Note that back around 1998, I was among the
people who exited `vi` by killing it from another terminal after a
bunch of tries & fails like
[these](http://osxdaily.com/2014/06/12/how-to-quit-vim/).)
I tried to come back to Emacs a lot of times. And I mean a *lot*,
about every two months. I suddenly learned what these cryptic key
chord descriptions mean (`C` is for <kbd>Control</kbd> and `M` is for
<kbd>Meta</kbd>, which is actually <kbd>Alt</kbd>), but somehow it
didnt *click*. I remained a ViM power user with a huge pile of
3<sup>rd</sup> party plugins.
Then [I found Nyan-macs]({% post_url 2014-09-17-nyanmacs %}),
which converted me to Emacs, and it is final now. Many of my friends
thought Im just kidding this being the cause, but Im not. Im a huge
fan of Nyan cat (did you know there is even a site
called [nyan.cat](http://nyan.cat/)?) and since then I have it in my
mode line:
![Nyan modeline]({% link images/nyan-modeline.png %})
…in my `eshell` prompt:
![eshell prompt with a Nyan cat]({% link images/nyan-eshell.png %})
…and I also [zone out](https://www.emacswiki.org/emacs/ZoneMode) with
Nyan cat:
![a text-based animation with Nyan cat]({% link images/nyan-zone.png %})
Now on to more serious stuff. After browsing through all the packages
provided by [ELPA](http://elpa.gnu.org/), I found tons of useful (and
sometimes, less useful) packages,
like
[Helm](https://github.com/emacs-helm/helm/wiki),
[company](http://company-mode.github.io/),
[gtags](https://www.emacswiki.org/emacs/GnuGlobal) (which introduced
me to GNU Global, removing Exuberant ctags from my
life),
[magit](https://magit.vc/),
[Projectile](http://batsov.com/projectile/),
and [Org](http://orgmode.org/) (OK, its actually part of Emacs for a
while, but still). I still use these few, but in a month or two, I
started
to [version control](https://github.com/gergelypolonkai/my-emacs-d) my
`.emacs.d` directory, so I can easily transfer it between my home and
work machine (and for a few weeks now, even to my phone: Im using
Termux on Android). Then, over these two years I wrote some packages
like [GobGen](https://github.com/gergelypolonkai/gobgen.el), and a
small addon for Calendar
providing
[Hungarian holidays](https://github.com/gergelypolonkai/hungarian-holidays),
and I found a lot more (in no particular
order):
[git-gutter](https://github.com/syohex/emacs-git-gutter),
[multiple-cursors](https://github.com/magnars/multiple-cursors.el),
[origami](https://github.com/gregsexton/origami.el),
[ace-window](https://github.com/abo-abo/ace-window),
[avy](https://github.com/abo-abo/avy),
[beacon](https://github.com/Malabarba/beacon), and a lot more.
What is more important (to me) is that I started using
the [use-package](https://github.com/jwiegley/use-package) package,
which can automatically download packages that are not installed on my
current local system. Together
with
[auto-package-update](https://github.com/rranelli/auto-package-update.el),
it is *very* practical.
In addition, I started to follow the blogs of a bunch of Emacs
users/gurus. Ive already
mentioned [Sacha Chua](http://sachachua.com/). Shes a charming,
cheerful person, writing a lot about Emacs and project management
(among other things). Another one
is [Bozhidar Batsov](http://batsov.com/), who, among other things, had
an initiate to lay down the foundation of
a
[common Elisp coding style](https://github.com/bbatsov/emacs-lisp-style-guide). Another
favourite of mine
is [Endless Parentheses](http://endlessparentheses.com/), whence I got
a lot of ideas.