Brief (to be removed)
vim 馃槏
emacs
Intellij
Atom
Sublime (???)
gedit 馃挬
Choosing the right text editor can be a difficult choice, one which has been the source of many a flame war on the Internet. He're we'll run through some popular text editor choices, so you can pick what feels best for you.
This is the bog-standard text editor that ships with Ubuntu. It works in almost exactly the way you would expect. There isn't too much to customise, and editing multiple files at the same time can be fairly slow. Any version control (e.g. with git) must be performed manually.
| Customisable? | Version control integration | Learning Curve |
|---|---|---|
| No | No | Easy |
This is a piece of software made by GitHub, advertised as being a "hackable text editor for the 21st century". There are many plugins which you can install to speed up your workflow, and editing multiple files is a lot easier. Atom is incredibly customisable; you can control keyboard shortcuts, themes, plugins and even create a script to run when the app starts up. Version control with git is built in.
| Customisable? | Version control integration | Learning Curve |
|---|---|---|
| Yes | Yes | Easy |
Jetbrains are a company that make a series of IDEs (integrated development environments) for various languages. Their flagship product, Intellij IDEA, is the recommended IDE to use when programming in Java in 1st/2nd term of 1st year, however they also have products such as PyCharm for Python programming and CLion for C programming. You can customise the look of the IDE and can also configure many different plugins (e.g. vim keyboard shortcuts), and all products come with version control integration. Students can get all of Jetbrains' products for free.
| Customisable? | Version control integration | Learning Curve |
|---|---|---|
| Yes | Yes | Medium |
vim has a steeper learning curve than other editors such as Atom, however many rewards can be reaped in terms of workflow speed. There are a large number of built-in keyboard shortcuts, all of which can be remapped if you don't like them, and an almost uncountable number of plugins for vim are available online. Since vim is run using a command line interface it is very fast, however the downside is there are no fancy integrations with other services such as version control - everything else must be done manually.
For a good tutorial to vim, check out Vim Adventures.
| Customisable? | Version control integration | Learning Curve |
|---|---|---|
| Yes, very | No | Steep |
Similarly to vim, emacs is a text editor which is run from the command line, making it a very fast competitor. emacs has room for a huge number of themes and plugins, and includes several unique features such as a built-in terminal emulator which can be positioned around with normal panes. emacs also has its own unique set of keyboard shortcuts which are completely different to vim's. There is no built-in integration with version control.
| Customisable? | Version control integration | Learning Curve |
|---|---|---|
| Yes, very | No | Steep |




