Vim
Everyone should use a tool that is right for the job. Well, for our purposes (C++, ROS, Python, Bash), Vim is very well suited. A lot of the time, you will find yourself in need of editing a code remotely (over ssh), and Vim can provide IDE-like features even in that situation. You might hear that Vim is "tough to learn" or "Vim is for crazy people," but in reality, it is not valid. Vim provides an efficient way to edit (explicitly "to edit", because editing is what you mostly do while programming) which will pay itself off after you learn it. Learning Vim is about changing the paradigm of editing - it's more about controlling a machine (synthesizer) that edits text, rather than moving a cursor with a mouse and then typing. Working in the terminal, using, e.g., tmux and Vim can also help you put away your mouse. Yes, a mouse is not an ideal tool for programming, though it has its use in gaming, 3D modeling, video editing, and so on. Without a mouse, you will become much more productive, and your carpal tunnels will thank you.
- Our programming and simulation environment (a.k.a, the Linux Setup) is distributed with Vim already containing a lot of useful features including but not limited to fully functional code completion working with ROS, code snippets, ROS integration, Tmux integration, Latex development, etc.
- Don't be afraid to ask about Vim, we will gladly help.
- Give it a chance, have a look at following videos:
- A list of particular features and key bindings used in our setup can be found here: http://github.com/klaxalk/linux-setup/wiki
Checkout out our Cheatsheet for some useful tips.