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

99 lines
4.0 KiB
Markdown
Raw Normal View History

---
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:
2019-10-25 12:37:37 +00:00
![Nyan modeline]({% link images/nyan-modeline.png %})
…in my `eshell` prompt:
2019-10-25 12:37:37 +00:00
![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:
2019-10-25 12:37:37 +00:00
![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.