# Emacs

## Why Emacs

Emacs is a powerful editor as famous as Vim. Emacs has almost all the benefits of Vim, such as: 

- Everything can be done with keyboard only, as there are a large number of shortcuts to improve the efficiency of code editing.
- Supporting both graphical and non-graphical interface in various scenarios.

Besides, the biggest difference between Emacs and most other editors lies in its powerful extensibility. Emacs kernel imposes no restrictions on users behaviors. With Emacs Lisp programming language, users is able to write any plugins to extend the functionality. After decades of development, Emacs' plugin ecosystem is arguably one of the richest and most powerful in the editor world. There is a joke saying that "Emacs is an OS that lacks a decent text editor". Futhermore, you can also write your own Emacs extensions with only a small amount of effort.

Emacs is friendly to Vim users as there is an extension called [evil](https://github.com/emacs-evil/evil) that migrate Vim operations into Emacs. Users can switch from Vim to Emacs with minimum effort. Statistics show that a considerable number of users would switch from Vim to Emacs, but there were almost no users who would switch from Emacs to Vim. In fact, the only weaknesss of Emacs is that it is not as efficient as Vim in pure text editing because of Vim's multi-modal editing. However, with Emacs' powerful extensibility, it can make up for its weaknesses by combining the strengths of both.

## How to learn Emacs

Same as Vim, Emacs also has a steep learning curve. But once you understand the basic underlying logic, you will never live without it. 

There are plenty of tutorials for Emacs. Since Emacs is highly customizable, every user has their own learning path. Here are some good starting points:

- [This tutorial](https://www.masteringemacs.org/article/beginners-guide-to-emacs) is a brief guide to the basic logic of Emacs.
- [Awesome Emacs](https://github.com/emacs-tw/awesome-emacs) lists a large number of useful Emacs packages, utilities, and libraries.

## Keyboard remapping

One of the most shortcomings of Emacs is the excessive use of the Ctrl key, which is a burden on your left little finger. It is highly recommended to change the keyboard mapping of the Ctrl key. Please refer to [Vim](Vim.en.md) for details to remapping. 
