Vi iMproved.
vi
was the core editor available on every unix systemvim
meansvi
improved- highly configurable but steep learning curve
- basic knowledge of
vi
is a core skill for all unix / linux server administrators - tonnes of plugins, highly extensible and widely used
- see my advanced .vimrc for all sorts of trips & tricks, hotkey linting and building, plugins etc.
See vim.md for more details.
https://github.com/neovim/neovim
Fork of vim above.
- more actively developed
- asynchronous plugins
- extensible in Lua instead of vimscript
- config can be in lua and vimscript
- better external UI support
- built-in terminal
- advanced highly customizable programming editor written by unix veteran by Richard Stallman in 1976
- steep learning curve like vim
- git integration via Magit
- can run shell commands and interact with system processes directly from Emac
- modes for different programming languages and tasks:
- major modes provide features specific to a language or type of file (e.g., Python mode, HTML mode)
- minor modes add additional functionalities, such as enabling version control, spell-checking, or syntax highlighting
- integration with external tools: Emacs supports a wide array of external tools, such as Git (via Magit), debuggers, shells, email clients, and more. You can run shell commands and interact with system processes directly from Emacs
- people used to joke that Emacs stood for "Eight Megabytes and Constantly Swapping" thinking it was resource hungry
- contrast to today with IntelliJ sucking up 8GB of RAM!
- extensible via Emacs Lisp (Elisp)
Simple lightweight text editor for beginners.
Easier to use than vim or emacs.
Developed as an alternative to the pico text editor which was not entirely open source.
https://www.jetbrains.com/idea/
State of the art modern popular IDE - proprietary but has a free version.
- fast & slick
- feature rich
- highly extensible with tonnes of plugins
- (see IntelliJ page for many good ones)
- built-in terminal
- resource intensive - just buy a more powerful machine like my M3 Max, it's worth it
The best of the best in my opinion.
See the IntelliJ IDEA page for more.
https://www.jetbrains.com/pycharm/
Python-focused version of the grand daddy IntelliJ IDEA.
https://www.jetbrains.com/ruby/
Ruby-focused version of the grand daddy IntelliJ IDEA.
Unfortuntely, this is proprietary paid for only and doesn't have a free version like PyCharm.
https://code.visualstudio.com/
Microsoft's Visual Studio Code is a free modern popular open-source IDE with plugins.
- IntelliSense - code completion
- remote development extensions enable developers to work seamlessly on remote machines or containers, enhancing the flexibility for those who work in cloud-based or server environments
- built-in terminal
- not quite as feature rich as Visual Studio
Not as good as IntelliJ in my opinion.
See the VS Code page for more details.
Old open source IDE.
Most people prefer IntelliJ as it's much faster and slicker.
.editorconfig
- standard config file that many editors will read, including GitHub for displaying theREADME. md
in the repo home page- see my .editorconfig
I haven't used eclipse enough to warrant its own page, so here are some minor bits.
F3
on a class to go it it's definition
Next / Previous Tab - Fn
-Ctrl
-Left
/ Fn
-Ctrl
-Right
Shortcut | Description |
---|---|
sysout -> Ctrl -Space |
Fills in the common System.out.println in Java |
Right-click -> Source -> Generate Getters & Setters |
|
default package -> Right-click -> Export -> Java -> JAR file |
Eclipse -> Preferences (Mac):
- Window
- Preferences
- Maven
- untick -
Do not automatically update dependencies from remote repositories
- tick -
Download repository index updates on startup
- untick -
- Maven
- Preferences
Eclipse JSONTools validation plugin (Help -> MarketPlace), but needs files to be .json (not .template from CloudFormation)
IntelliJ also has JSON error validation, but it's not as good as it's hard to see underscores not the big red cross eclipse puts in the left column.
- CheckStyle
- Cucumber
- PMD
- Findbugs
- CodeTemplates
- Mylyn
Ported from various private Knowledge Base pages 2013+