I've recently reconfigured an old Dell laptop for development work and thought that I'd post my current setup. I love reading about how other people configure their systems and I'm always open to suggestions.
I already have a Windows 10 PC, that I only really use to test Windows versions of software that I've compiled, so my new dev laptop has Linux installed. I've been using Linux as my primary OS for 19 years and I'm comfortable working in it, I occasionally have to dip into the Windows world, due to work, but usually find myself frustrated with its limitations.
Currently Xubuntu is my favourite distro, although in the past I've used SUSE, Slackware, Vector, Slitaz, CrunchBang (my favourite for a long time) and Bodhi.
Xubuntu isn't as lightweight as some of the Linux flavours that I've used in the past, but it works straight out of the box with most hardware.
Vim
I've recently decided to use the Vim editor for all of my coding. Again, it's something that I've been familiar with for years, but not in any advanced way. My fingers don't dance over the keyboard like some Vim masters that I've worked with, but my muscle memory can usually get me to copy, paste, indent etc without having to Google how to do it.
I don't have anything against IDE's, I love the Lazarus IDE, for example, and IntelliJ IDEA is fantastic for Java. But I also occasionally have to write a Python script, or something in Laravel, and I don't like having to use a different IDE for each language. So I decided on using one text editor for everything so that I can just get familiar with one environment. I quite like Geany, but eventually went with Vim. It can be configured to do almost anything and I'd like to dedicate some time to using it exclusively so that I can become one of those Vim masters...
I'm currently using the following plugins in Vim
NerdTree
For navigating through a projects directory structure
NerdCommenter
To easily comment out blocks of code, the brute force way of finding a problem
ALE
This is a code linter and formatter. Although I haven't found any linters for Free Pascal, I've set it up to call ptop the source code formatter whenever I save a file. A quick :w will nicely arrange my code, although I don't like the way that it capitalised the first letter of each keyword (the code formatter in Lazarus is much better). Everything is formatted consistently though so I don't have to waste time prettying up my code.
lightline
A status bar that matches my colourscheme
Monokai theme
I use this on most text editors / IDE's that I have.
ctags
Not really a plugin, I generate tags for each project that I'm working on so that I can jump to a function when I'm browsing the code. Vim also uses the tags file for autocomplete.
I've also installed FP IDE, that's the old fashioned text based, Free Pascal IDE that's designed to look similar to Turbo Pascal.
I may end up not using this very often, but installed it mainly as a browser for the installed Free Pascal help files and language documentation. It also helps to organise my build profiles for debugging / release versions.
The fact that it has a built in ASCII table lookup tool also makes it perfect for roguelike development.
So I currently have a development machine that allows me to write, edit, compile and test my code without ever having to open a graphical desktop. It allows me to focus more on the code without any distractions.
If anyone has any suggestions, particularly for command line tools that help with development / code management, I'd love to hear them.