I am not a professional developer, but from time to time I write some code. Even more often I write scripts (bash) or configuration files for e.g. Packer or Vagrant. Said that, I have to admit, that I use Microsoft's source control editor Visual Studio Code (Insiders) on my Linux box.
I love it cause it supports a number of programming languages from scratch and can be even extended to support a lot of others. It loads very fast and works with git by default. This means you can easily stage files, commit changes, push and pull from and to git, as well as review diffs. Very cool is also the IntelliSense, which offer not only code completion but far more. If you don't know what it is, checkout this site: https://code.visualstudio.com/docs/editor/intellisense
VS Code comes with other nice features like a built-in debugger which lets you easily debug your code and is as well available for a lot of languages - via debugger extensions. It also offers an integrated terminal - which is quite comfortable to do actions that require the console without switching the window. In addition you can have different different types of console e.g. bash and powershell - assuming you have powershell installed on your box.
But not all activities have to be done on the console cause VS Code currently auto-detects tasks for different systems which Gulp, Grunt, Jake and npm - Maven and C# .NET to come soon. In addition you also can create your custom tasks.
As you might already expect out of the text above, VS Code can be extended by means of extensions. There is a big market place which offers a lot of extensions. Extensions that are installed can be disabled for a specific workspace.
Some extensions which I currently use and really like
- VIM - Vim emulation for Visual Studio Code, means you can use VIM keybindings within VS Code
- Settings-Sync - https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync
- C# - Lightweight development tools for .NET Core and editing support, including Syntax Highlighting, IntelliSense, Go to Definition, Find All References, etc. as well as Debugging
- Docker - Adds syntax highlighting, snippets, commands, hover tips, and linting for Dockerfile and docker-compose files.
- GitLens - Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore the history of a file or branch, gain valuable insights via powerful comparison commands, and so much more
- Vagrantfile Support - Provides syntax highlighting support for Vagrantfile, useful if you use Vagrant
- Vagrant - Vagrant commands directly from VS Code
Sure there are much more interesting plugins for your needs.
Installation on Arch Linux
On Arch Linux you can install it via AUR
[[email protected]]$ yaourt -S visual-studio-code
or in case you would like to use the 64-bit version
[[email protected]]$ yaourt -S visual-studio-code-insiders
Latter may require to disable the checksum verification as it installs always the latest insider build, but the package may not yet been updated.
Checkout https://github.com/Microsoft/vscode-tips-and-tricks for some tips and tricks. It's also worth to check the default keybindings, even so you can adjust this to your needs if necessary.